Python的xpath数据解析案例分析
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,这篇"Python的xpath数据解析案例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看
千家信息网最后更新 2025年01月25日Python的xpath数据解析案例分析
这篇"Python的xpath数据解析案例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python的xpath数据解析案例分析"文章吧。
xpath基本概念
xpath解析:最常用且最便捷高效的一种解析方式。通用性强。
xpath解析原理
1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中
2.调用etree对象中的xpath方法结合xpath表达式实现标签的定位和内容的捕获。
环境安装
pip install lxml
如何实例化一个etree对象
from lxml import etree
1.将本地的html文件中的远吗数据加载到etree对象中:
etree.parse(filePath)
2.可以将从互联网上获取的原码数据加载到该对象中:
etree.HTML('page_text')
xpath(‘xpath表达式’)
1./:表示的是从根节点开始定位。表示一个层级
2.//:表示多个层级。可以表示从任意位置开始定位
3.属性定位://div[@class='song'] tag[@attrName='attrValue']
4.索引定位://div[@class='song']/p[3] 索引从1开始的
5.取文本:
/text()获取的是标签中直系的文本内容
//text()标签中非直系的文本内容(所有文本内容)
6.取属性:/@attrName ==>img/src
xpath爬取58二手房实例
完整代码
from lxml import etreeimport requestsif __name__ == '__main__': headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36' } url = 'https://xa.58.com/ershoufang/' page_text = requests.get(url=url,headers=headers).text tree = etree.HTML(page_text) div_list = tree.xpath('//section[@class="list"]/div') fp = open('./58同城二手房.txt','w',encoding='utf-8') for div in div_list: title = div.xpath('.//div[@class="property-content-title"]/h4/text()')[0] print(title) fp.write(title+'\n'+'\n')
xpath图片解析下载实例
完整代码
import requests,osfrom lxml import etreeif __name__ == '__main__': headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36' } url = 'https://pic.netbian.com/4kmeinv/' page_text = requests.get(url=url,headers=headers).text tree = etree.HTML(page_text) li_list = tree.xpath('//div[@class="slist"]/ul/li/a') if not os.path.exists('./piclibs'): os.mkdir('./piclibs') for li in li_list: detail_url ='https://pic.netbian.com' + li.xpath('./img/@src')[0] detail_name = li.xpath('./img/@alt')[0]+'.jpg' detail_name = detail_name.encode('iso-8859-1').decode('GBK') detail_path = './piclibs/' + detail_name detail_data = requests.get(url=detail_url, headers=headers).content with open(detail_path,'wb') as fp: fp.write(detail_data) print(detail_name,'seccess!!')
xpath爬取全国城市名称实例
完整代码
import requestsfrom lxml import etreeif __name__ == '__main__': url = 'https://www.aqistudy.cn/historydata/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36', } page_text = requests.get(url=url,headers=headers).content.decode('utf-8') tree = etree.HTML(page_text) #热门城市 //div[@class="bottom"]/ul/li #全部城市 //div[@class="bottom"]/ul/div[2]/li a_list = tree.xpath('//div[@class="bottom"]/ul/li | //div[@class="bottom"]/ul/div[2]/li') fp = open('./citys.txt','w',encoding='utf-8') i = 0 for a in a_list: city_name = a.xpath('.//a/text()')[0] fp.write(city_name+'\t') i=i+1 if i == 6: i = 0 fp.write('\n') print('爬取成功')
xpath爬取简历模板实例
完整代码
import requests,osfrom lxml import etreeif __name__ == '__main__': url = 'https://sc.chinaz.com/jianli/free.html' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36', } page_text = requests.get(url=url,headers=headers).content.decode('utf-8') tree = etree.HTML(page_text) a_list = tree.xpath('//div[@class="box col3 ws_block"]/a') if not os.path.exists('./简历模板'): os.mkdir('./简历模板') for a in a_list: detail_url = 'https:'+a.xpath('./@href')[0] detail_page_text = requests.get(url=detail_url,headers=headers).content.decode('utf-8') detail_tree = etree.HTML(detail_page_text) detail_a_list = detail_tree.xpath('//div[@class="clearfix mt20 downlist"]/ul/li[1]/a') for a in detail_a_list: download_name = detail_tree.xpath('//div[@class="ppt_tit clearfix"]/h2/text()')[0] download_url = a.xpath('./@href')[0] download_data = requests.get(url=download_url,headers=headers).content download_path = './简历模板/'+download_name+'.rar' with open(download_path,'wb') as fp: fp.write(download_data) print(download_name,'success!!')
以上就是关于"Python的xpath数据解析案例分析"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
数据
实例
对象
定位
代码
文本
模板
简历
案例
案例分析
分析
城市
标签
二手房
层级
属性
文章
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百度服务器管理台
剑网 服务器
我的世界服务器装备解绑指令
通讯和软件开发
简述个人网络安全及隐患
兴化巨型网络技术解决方案
数据库如何复制代码
南京炫德网络技术有限公司
数据库怎样添加选择组控件
微软笔记本软件开发
什么方法设计数据库的概念模型
江口旭雨佳网络技术有限公司
山东前端软件开发价格
steam加速后服务器发生错误
数据库缓存技术有哪些
敏捷软件开发的实践
命令行打开dns服务器
网络技术服务生产流程
天津gpu服务器找哪家服务器
电视无法找到服务器是怎么了
东方日升软件开发好吗
数据库表详细设计
学软件开发好还是学传媒好
网络安全法的防护措施
网络安全一堂课
sqlite 数据库类型
网络安全防护喷雾身体
分布式数据库研究
儿童节保护网络安全
gen8微型服务器