①:正则
- [https://blog.csdn.net/weixin_40907382/article/details/79654372](https://blog.csdn.net/weixin_40907382/article/details/79654372)
- match(a,b) : 在b中**从头开始**匹配第一次a,不存在返回None
- search(a,b) : 在b中匹配一次a,不存在返回None
- findall(a,b) :在b中匹配全部的a,用列表保存, 不存在返回[]
- finditer(a,b) : 在b中匹配全部的a,用一个可迭代对象保存
import re
# 建立正则 匹配公式
match_expression = re.compile('<a href=(.*?)>(.*?)</a>')
对数据data 进行findall匹配
list_data = match_expression.findall(data)
②:xpath
- [https://blog.csdn.net/pengjunlee/article/details/89313891](https://blog.csdn.net/pengjunlee/article/details/89313891)
- **模糊搜素 :contains**
from lmxl import etree
x_data = etree.HTML(data)
nows_name_list = x_data.xpath('//div[@id="body"]//a[@mon]/text()')
nows_url_list = x_data.xpath('//div[@id="body"]//a[@mon]/href')
# 模糊搜素 通过查找id里面有 bod 字段来查找div
nows_url_list = x_data.xpath('//div[contains[@id,"bod"]]//a[@mon]/href')
③:bs4
- http
from bs4 import BeautifulSoup
# 转类型 和指定解析库
soup = BeautifulSoup(data,"lxml")