我用beauthoulsoup将一个网站上的一些文本(城市名称)解析成一个列表,但是遇到了一个我无法克服的问题。网站上的文本元素有特殊字符,当我打印列表时,城市名称显示为[u'London],而不是特殊字符,而是数字和字母。如何去掉开头的“u”,并将文本转换为网站上最初显示的格式?在
代码如下:
import urllib2
from bs4 import BeautifulSoup
address = 'https://clinicaltrials.gov/ct2/show/NCT02226120?resultsxml=true'
page = urllib2.urlopen(address)
soup = BeautifulSoup(page)
locations = soup.findAll('country', text="Hungary")
for city_tag in locations:
site=city_tag.parent.name
if site=="address":
desired_city=str(city_tag.findPreviousSibling('city').contents)
print desired_city
我得到的输出是:
^{pr2}$例如,底部的第7个元素[u'Nyiregyh\xe1za']显示不正确。在
您使用^{} 来转换您拥有的对象以便可以打印:
您不仅可以看到您询问的“u”前缀,还可以看到}。这些标点符号是这些类型的对象通过
[]
和{str()
转换为文本的一部分:[]
表示您有一个列表对象。u''
表示列表中的对象是“text”。注意:Python2在字节和字符的处理上相当草率。这种草率让许多人感到困惑,特别是因为有时即使在其他数据或环境中出现错误或出现故障时,它也能正常工作。由于列表中包含unicode对象,因此需要打印该值:
^{pr2}$请注意,我假设城市列表至少有一个元素。您显示的示例输出是这样的,但是最好检查错误情况。在
相关问题 更多 >
编程相关推荐