Python的xpath数据解析案例分析
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇"Python的xpath数据解析案例分析"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看
千家信息网最后更新 2024年11月24日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安全错误
数据库的锁怎样保障安全
软件测试和软件开发工作量
网络安全测评什么意思
数据库id怎么改
杭州直播软件开发需要多少钱
提供业务数据库
广东深圳直销软件开发
互联网科技创新 背景
数据库设计说明书文档范围
设计工具软件开发
沃土 服务器
自己电脑当服务器需要
编写小程序属于软件开发吗
获取手游服务器连接的玩家ip
adobe在中国有没有服务器
禄劝综合软件开发价格信息
学网络技术找什么样的工作啊
360网络安全成员李均
部分服务器异常
保定租用服务器哪家好
ftp服务器修改文档
华为里面做软件开发怎么样
网络安全未得到认证
天津企业软件开发定做价格
泰安手机app软件开发
云泰网络技术有限公司
聚光科技软件开发
大网站服务器数量
ios怎么手动添加服务器
手机服务器图像
svs认证服务器