爬虫提取标签的几种方式

xiaoxiao2025-05-29  16

我最喜欢用两种解析方式

#第一种解析方式 etree+xpath 提取匹配标签 a = "<div class='a'>123<p>1455555</p></div>" from lxml import etree con = etree.HTML(a) print(con) print(con.xpath("//div/text()")) print(con.xpath("//div/p/text()")) print(con.xpath("//div//text()")) # 输出结果: ['123'] ['1455555'] ['123', '1455555'] # 第二种提取标签的方式 Selector +css 提取 from scrapy import Selector a = "<div class='a'>123<p>1455555</p></div>" con = Selector(text=a) print(con) print(con.xpath("//div/text()").extract()) print(con.xpath("//div/p/text()").extract()) print(con.xpath("//div//text()").extract()) # 输出结果: <Selector xpath=None data='<html><body><div class="a">123<p>1455555'> ['123'] ['1455555'] ['123', '1455555'] # string(.)的用法 b = con.xpath("//div") # 获取标签下面的所有的字符 print(b.xpath("string(.)")) # 输出结果: [<Selector xpath='string(.)' data='1231455555'>]

当然还有其他的提取方式,比如说re,css, bs4, pyputer 等等等等, 个人对xpath比较熟悉,所以一般情况下我会使用xpath,有的字段麻烦的,会对提取的结果用一个正则表达式来获取想要的文本。

requests请求的特殊几种获取方式处理

# requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据,可以直接传入json参数: url = "https://123456.com" params = {'key': 'value'} r = requests.post(url, json=params) # 内部自动序列化为JSON # 要在请求中传入Cookie,只需准备一个dict传入cookies参数: cs = {'token': '12345', 'status': 'working'} r2 = requests.get(url, cookies=cs)
转载请注明原文地址: https://www.6miu.com/read-5030933.html

最新回复(0)