使用BeautifulSoup

时间:2018-01-08 16:16:30

标签: python web-scraping beautifulsoup findall

我正在尝试提取包含链接作为文本一部分的网络文章的文本。这方面的一个例子是:

<p>Here is some text with <a href="https://www.example.com"> this part as a link</a>
which we will look at.</p>

我尝试过使用

table.findAll('p', text = True)

关于数据,但是这个命令忽略了包含url的所有'p'标签(也就是说,它不会在第一个块中获取示例)。我的问题是,如何从“p”标签中提取文本,同时还包括嵌入的链接,如何删除链接的网址,只保留“此部分作为链接”突出显示的文本?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

难以理解:

>>> import bs4
>>> HTML = '''\
... <p>Here is some text with <a href="https://www.example.com"> this part as a link</a>
... which we will look at.</p>'''
>>> soup = bs4.BeautifulSoup(HTML, 'lxml')
>>> [p.text for p in soup.findAll('p')]
['Here is some text with  this part as a link\nwhich we will look at.']

当然,您很可能想要更换新行和冗余空白。