如何使用regex匹配具有特殊字符的字符串

2024-04-26 21:02:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图刮网站数据使用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,所以使用soup更容易得到结果

感谢大家的帮助。:)


Tags: 数据代码orgre声明网站链接www
1条回答
网友
1楼 · 发布于 2024-04-26 21:02:03

如果你已经在使用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属性与正则表达式匹配的链接

相关问题 更多 >