所以,我有一个有XML字符串的网站,我希望我的程序返回两个字符串之间出现的字符串列表。这是我的代码:
response = requests.get(url)
artists=re.findall(re.escape('<name>')+'(.*?)'+re.escape('</name>'),str(response.content))
print(artists)
返回字符串列表。问题是,某些字符串中包含不需要的字符。例如,列表中的一个字符串是&#34; Somethin \\&#39; &#39; Bout A Truck&#34;而且我希望它能够成为一个&#39; Somethin&#39; &#39;回合卡车&#39;。
提前致谢。
答案 0 :(得分:1)
我认为美丽的汤(bs4)将解决这个问题,它也将支持更高版本的python 3.4
答案 1 :(得分:1)
那些转义(单个反斜杠,每个都显示为\\
)可能是&#34;不需要的&#34;从你的观点来看,他们毫无疑问地#34;现在&#34;在你收到的回复中。因此,如果字符存在但不需要,您可以删除它们,例如使用代替str(response.content)
str(response.content).replace('\\'. '')
如果你真正想做的就是删除所有这些逃脱(如果你想做一些不同于你更好地解释它的东西: - )。
BeautifulSoup4
根据已接受的答案推荐,虽然确实是一个不错的软件包,不大肆删除输入中的字符 - 它无法读懂你的想法,所以它无法知道&#34;不需要的&#34;给你。 E.g:
>>> import bs4
>>> s = '<name>Somethin\\\' \\\'Bout A Truck</name>'
>>> soup = bs4.BeautifulSoup(s)
>>> print(soup)
<name>Somethin\' \'Bout A Truck</name>
>>>
如您所见,单引号之前的转义(反斜杠)仍然存在。