正则表达式帮助python找到链接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式帮助python找到链接相关的知识,希望对你有一定的参考价值。

我正在从html页面解析一些链接,我想检测所有符合以下模式的链接:

http://www.example.com/category1/some-content-here/
http://www.example.com/category-12/some-content-here/

它不应该匹配以下链接:

http://www.example.com/category1/
http://www.example.org/category-12/some-content-here/

谢谢!

答案

您可以使用BeautifulSoup来解析HTML a标记,然后使用正则表达式来过滤原始的完整结果:

from bs4 import BeautifulSoup as soup
import re
sample = """
<div id='test'>
    <a href='http://www.example.com/category1/some-content-here/'>Someting</a>
    <a href='http://www.example.com/category-12/some-content-here/'>Someting Here</a>
    <a href='http://www.example.com/category1/'>Someting1</a>
    <a href='http://www.example.org/category-12/some-content-here/'>Sometingelse</a>
 </div>
 """
a = [i['href'] for i in soup(sample, 'lxml').find_all('a') if re.findall('http://[w.]+.com/[w-]+/[w-]+/', i['href'])]

输出:

['http://www.example.com/category1/some-content-here/', 'http://www.example.com/category-12/some-content-here/']

以上是关于正则表达式帮助python找到链接的主要内容,如果未能解决你的问题,请参考以下文章

循环通过 python 正则表达式匹配

正则表达式以python分割文本文件

Python:正则表达式与所需的相反[重复]

使用 Beautiful Soup 提取链接的等效正则表达式

PyMongo 匹配 JavaScript 正则表达式对象

使用正则表达式重新字符串匹配提取 URL 链接 - Python