相关疑难解决方法(0)

关于BeautifulSoup中get_text()的建议

我正在使用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>被移除时,内容之间没有更多的间距,并且两个单词被合并.

我该如何解决这个问题?

python beautifulsoup

10
推荐指数
3
解决办法
3万
查看次数

使用 beautifulsoup get_text()

我可以使用以下代码块从网站解析我需要的字段:

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 标签?

python beautifulsoup

4
推荐指数
1
解决办法
7660
查看次数

标签 统计

beautifulsoup ×2

python ×2