①:正则

  1. - [https://blog.csdn.net/weixin_40907382/article/details/79654372](https://blog.csdn.net/weixin_40907382/article/details/79654372)
  2. - match(a,b) b中**从头开始**匹配第一次a,不存在返回None
  3. - search(a,b) : b中匹配一次a,不存在返回None
  4. - findall(a,b) :在b中匹配全部的a,用列表保存, 不存在返回[]
  5. - finditer(a,b) : b中匹配全部的a,用一个可迭代对象保存
  1. import re
  2. # 建立正则 匹配公式
  3. match_expression = re.compile('<a href=(.*?)>(.*?)</a>')
  4. 对数据data 进行findall匹配
  5. list_data = match_expression.findall(data)

②:xpath

  1. - [https://blog.csdn.net/pengjunlee/article/details/89313891](https://blog.csdn.net/pengjunlee/article/details/89313891)
  2. - **模糊搜素 :contains**
  1. from lmxl import etree
  2. x_data = etree.HTML(data)
  3. nows_name_list = x_data.xpath('//div[@id="body"]//a[@mon]/text()')
  4. nows_url_list = x_data.xpath('//div[@id="body"]//a[@mon]/href')
  5. # 模糊搜素 通过查找id里面有 bod 字段来查找div
  6. nows_url_list = x_data.xpath('//div[contains[@id,"bod"]]//a[@mon]/href')

③:bs4

  1. - http
  1. from bs4 import BeautifulSoup
  2. # 转类型 和指定解析库
  3. soup = BeautifulSoup(data,"lxml")