Python 爬虫入门正则表达式的用法

正则表达式是一种强大的文本匹配工具,常用于爬虫程序中对网页内容进行匹配和提取。在 Python 中,可以使用 re 模块来操作正则表达式。

以下是一些正则表达式的常用语法:

  1. 匹配单个字符:
  • . 匹配除换行符以外的任意单个字符
  • \d 匹配数字
  • \D 匹配非数字
  • \w 匹配字母、数字和下划线
  • \W 匹配非字母、数字和下划线
  • \s 匹配空白字符(空格、制表符、换行符等)
  • \S 匹配非空白字符
  1. 匹配多个字符:
    • 匹配前面的字符0次或多次
    • 匹配前面的字符1次或多次
  • ? 匹配前面的字符0次或1次
  • {n} 匹配前面的字符恰好n次
  • {n,} 匹配前面的字符至少n次
  • {n,m} 匹配前面的字符至少n次,最多m次
  1. 匹配特定位置:
  • ^ 匹配字符串的开头
  • $ 匹配字符串的结尾
  • \b 匹配单词的边界
  • \B 匹配非单词的边界
  1. 匹配字符集合:
  • [...] 匹配方括号中的任意一个字符
  • [^...] 匹配除了方括号中的字符以外的任意一个字符

例如,以下代码可以匹配一个 HTML 页面中的所有链接:

import re
import requests

url = 'https://www.example.com'
response = requests.get(url)
html = response.text
pattern = r'<a href="(.*?)".*?>'
links = re.findall(pattern, html)
print(links)

这里的正则表达式 r'<a href="(.*?)".*?>' 可以匹配所有形如 <a href="..."> 的链接。其中 (.*?) 表示匹配任意字符,直到遇到下一个字符 ",这样就可以提取出链接地址了。