2024-09-27 21:30:05 发布
网友
我想从一个网站上搜刮手机。手机的格式是这样的
+971553453301
这是任务的代码段
我得到的错误是:
'ascii' codec can't encode character u'\u202a' in position 54: ordinal not in range(128)
有什么帮助吗?在
尝试用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方法。在希望这有帮助!在
BeautifulSoup
str
最后,您将encode调用到str,在python2中它已经被编码了,它可能会失败,因为python2将首先对其进行解码(使用默认编码),然后再对其进行编码。在
encode
因此,请尝试使用此修复程序,假设网页编码为utf8:
utf8
这条线也有一个问题:
phone=soup.find("div", "phone-content")
^{}只返回一个结果,^{}对象,最好使用^{},它将返回Tag对象的列表。不同之处在于,当您迭代单个Tag对象的结果时,您将得到^{}s,它没有get_text方法。当您迭代一个Tag对象的列表时,您会在迭代中得到Tag对象,这些对象具有get_text方法。在
Tag
get_text
希望这有帮助!在
尝试用unicode(a)替换str(a)并跳过.encode()
这一行代码有几处很尴尬:
首先,
BeautifulSoup
使用unicode,因此Python2将其文本转换为str
是很容易出错的。{{{cd2>调用一个最后,您将
encode
调用到str
,在python2中它已经被编码了,它可能会失败,因为python2将首先对其进行解码(使用默认编码),然后再对其进行编码。在因此,请尝试使用此修复程序,假设网页编码为
^{pr2}$utf8
:这条线也有一个问题:
^{} 只返回一个结果,^{} 对象,最好使用^{} ,它将返回} s,它没有
Tag
对象的列表。不同之处在于,当您迭代单个Tag
对象的结果时,您将得到^{get_text
方法。当您迭代一个Tag
对象的列表时,您会在迭代中得到Tag
对象,这些对象具有get_text
方法。在希望这有帮助!在
相关问题 更多 >
编程相关推荐