我正在使用BeautifulSoup来解析html页面中的一些内容.
我可以从html中提取我想要的内容(即包含在myclass中span定义的文本class).
result = mycontent.find(attrs={'class':'myclass'})
Run Code Online (Sandbox Code Playgroud)
我得到了这个结果:
<span class="myclass">Lorem ipsum<br/>dolor sit amet,<br/>consectetur...</span>
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用以下方法提取文本:
result.get_text()
Run Code Online (Sandbox Code Playgroud)
我获得:
Lorem ipsumdolor sit amet,consectetur...
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,当标签<br>被移除时,内容之间没有更多的间距,并且两个单词被合并.
我该如何解决这个问题?
我可以使用以下代码块从网站解析我需要的字段:
response = requests.get(index_url)
soup = bs4.BeautifulSoup(response.text, "lxml")
poem = soup.select('div.siir p[id^=siir]')
print poem
Run Code Online (Sandbox Code Playgroud)
但它打印时带有 HTML 标签。我正在尝试使用get_text()函数。当我尝试像这样使用时:
print poem.get_text()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
AttributeError: 'list' object has no attribute 'get_text'
Run Code Online (Sandbox Code Playgroud)
我也尝试这样使用:
poem = soup.select('div.siir p[id^=siir]').get_text()
Run Code Online (Sandbox Code Playgroud)
我再次遇到同样的错误。解析正确的字段后如何消除 HTML 标签?