将web url与python正则表达式匹配

2024-09-30 16:37:20 发布

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

我正在尝试用Python正则表达式从web内容中添加额外的web链接。这是我的python脚本

webUrlList = re.findall(r"(?<=<a href=\").+(.html|/)(?=\")", content)
print webUrlList

匹配的webUrlList如下所示:

['/', '.html', '/', '/', '/', '/',...] 

请帮我找出这个脚本产生上述输出的原因。你知道吗

目标weburl字符串示例:

<a href="http://ab.test.com/flower/1111027378112/purple/119735281586093.html"

<a href="/abcabcdef/coffee/su1/" 

Tags: 字符串re脚本web内容目标链接html
2条回答

如果您只解析链接,并且熟悉将要解析的内容,那么下面的正则表达式应该可以帮助您完成所要完成的任务,而且非常安全。你知道吗

regex = re.compile(r'href="([^"]+)')
results = re.findall(regex, <CONTENT-HERE>)
  • href="消耗但不捕获文字字符href="
  • ([^"]+)使用并捕获任何不是引号的字符

对你正在抓取的内容进行一些试验,并评估你是否需要在regex中有更多的特异性。你知道吗

使用类似BeautifulSoup的html解析器:

soup = BeautifulSoup(content, "html.parser")

print([a["href"] for a in soup.find_all("a", href=True)])

不要使用正则表达式来解析html

相关问题 更多 >