冰冻三尺,非一日之寒。数据解析——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-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解