Python 正则表达式实现网页链接提取

2023-04-02 00:00:00 网页 链接 提取

以下是使用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。

相关文章