我正在尝试使用BS4抓取网站数据,但无法编写确切的语句来获取所需的链接。我想获取搜索资源的链接,该资源应该在
中<a href="www.speed.org">Speed Org</a>
我写的代码是:
r = re.compile(r'^<a(.)*speed.org(.)*</a>$')
我希望代码显示:
<a href="www.speed.org">Speed Org</a>
但它没有提供适当的输出。任何人都可以修改此代码。
修改
有人指出表达本身是错误的。正确的表达应该是:r'^<a(.*)speed.org(.*)</a>$'
由于我使用的是BS4,因此使用汤更容易获得结果。
感谢所有人的帮助。 :)
答案 0 :(得分:2)
如果您已经在使用BeautifulSoup,请不要将HTML视为字符串。让BeautifulSoup解析它,然后使用BeautifulSoup.find_all
搜索您的元素:
import re
from bs4 import BeautifulSoup
soup = BeautifulSoup(your_html, 'lxml')
links = soup.find_all('a', href=re.compile('www\.speed\.org'))
href=re.compile('www\.speed\.org')
只使用正则表达式缩小指向href
属性与正则表达式匹配的链接的链接。