Python 正则表达式实现网页链接提取
以下是使用Python正则表达式实现网页链接提取的详细步骤和代码演示:
步骤:
导入re模块,用于正则表达式的操作。
定义一个正则表达式模式,用于匹配网页链接,比如<a href="https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+">
。
使用re.findall()函数匹配字符串中的所有符合正则表达式模式的链接,返回一个列表。
代码演示:
import re # 定义正则表达式模式 pattern = '<a href="https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+">' # 示例字符串 text = '欢迎来访问我的博客:<a href="https://pidancode.com">皮蛋编程</a>' # 使用re.findall()函数匹配链接 links = re.findall(pattern, text) # 输出匹配到的链接 print(links)
输出结果:
['<a href="https://pidancode.com">']
解释:该正则表达式模式匹配以 <a href="
开头,后跟一个 http 或 https 协议的网址链接,链接中可以包含大小写字母、数字、连字符和点号等字符,也可以使用百分号编码。在示例字符串中,匹配到了一个符合模式的链接 <a href="https://pidancode.com">
。
只提取URL,不要带标签
好的,为了只提取URL而不带标签,我们需要在正则表达式模式中使用分组来提取链接部分。以下是修改后的代码演示:
import re # 定义正则表达式模式 pattern = '<a href="(https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+)"' # 示例字符串 text = '欢迎来访问我的博客:<a href="https://pidancode.com">皮蛋编程</a>' # 使用re.findall()函数匹配链接 links = re.findall(pattern, text) # 输出匹配到的链接 print(links)
输出结果:
['https://pidancode.com']
解释:该正则表达式模式使用了一个圆括号分组,将链接部分提取出来。在示例字符串中,匹配到了一个符合模式的链接 https://pidancode.com。
相关文章