冰冻三尺,非一日之寒。数据解析——xpath(4)
2021/5/1 18:27:32
本文主要是介绍冰冻三尺,非一日之寒。数据解析——xpath(4),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
爬取全国的城市名称以及“或”的简单介绍
首先是爬取全国城市名称
网址如下:https://www.aqistudy.cn/historydata/
我们打开网页进行简单的数据分析
我们发现我们需要爬取的名称都在 li 标签里。根据这个我们可以很简单地写我们的代码
import requests from lxml import etree if __name__ == "__main__": # UA伪装 header = { "user-agnet": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36" } # 指定url url = "https://www.aqistudy.cn/historydata/" # 获取源码 response = requests.get(url = url, headers = header).text # xpath 解析。热门城市名称爬取 tree = etree.HTML(response) hot_city_name_li_list = tree.xpath('//div[@class="hot"]//li') # 热门城市名称的 li 标签的列表 hot_city_name = [] for li in hot_city_name_li_list: hot_city_name.append(li.xpath('a/text()')[0]) print(hot_city_name, len(hot_city_name)) print() # xpath 解析。全部城市名称爬取 all_city_li_list = tree.xpath('//div[@class="all"]//li') # 全部城市名称的 li 标签的列表 all_city_name = [] for li in all_city_li_list: all_city_name.append(li.xpath('a/text()')[0]) print(all_city_name, len(all_city_name)) print()
看一下我们的运行结果
我们这里爬取的名称是所有城市里包括热门城市的,要是不包括,我们要获取这些城市的名称,难道要把两个列表直接加起来吗?虽然不是不行,但实际上还是多写了几行代码的。
所以在这里介绍一下 xpath 里面的 “或”(“|”)和 “or” 的作用一样
闲话少说,直接看代码
import requests from lxml import etree if __name__ == "__main__": # UA伪装 header = { "user-agnet": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36" } # 指定url url = "https://www.aqistudy.cn/historydata/" # 获取源码 response = requests.get(url = url, headers = header).text # xpath 解析。“|”的使用 tree = etree.HTML(response) city_name = tree.xpath('//div[@class="hot"]//li/a/text() | //div[@class="all"]//li/a/text()') print(city_name, len(city_name))
运行一下
名称个数正好是 394 = 384 + 10
xpath 的 “或” 你学会了吗?
这篇关于冰冻三尺,非一日之寒。数据解析——xpath(4)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28一步到位:购买适合 SEO 的域名全攻略
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门