刮取数据时发生ASCII编码错误

2024-09-27 21:30:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个网站上搜刮手机。手机的格式是这样的

+971553453301‪ 

这是任务的代码段

^{pr2}$

我得到的错误是:

'ascii' codec can't encode character u'\u202a' in position 54: ordinal not in range(128)

有什么帮助吗?在


Tags: in网站代码段格式错误asciipositioncan
2条回答

尝试用unicode(a)替换str(a)并跳过.encode()

这一行代码有几处很尴尬:

phone_result= str(a).get_text().strip().encode("utf-8")

首先,BeautifulSoup使用unicode,因此Python2将其文本转换为str是很容易出错的。{{{cd2>调用一个

最后,您将encode调用到str,在python2中它已经被编码了,它可能会失败,因为python2将首先对其进行解码(使用默认编码),然后再对其进行编码。在

因此,请尝试使用此修复程序,假设网页编码为utf8

^{pr2}$

这条线也有一个问题:

phone=soup.find("div", "phone-content")

^{}只返回一个结果,^{}对象,最好使用^{},它将返回Tag对象的列表。不同之处在于,当您迭代单个Tag对象的结果时,您将得到^{}s,它没有get_text方法。当您迭代一个Tag对象的列表时,您会在迭代中得到Tag对象,这些对象具有get_text方法。在

希望这有帮助!在

相关问题 更多 >

    热门问题