四个Python爬虫案例,带你掌握xpath数据解析方法!

Python : Xpath简介及实例讲解 文章目录一、Xpath简介二、Xpath语法规则语法规则标签定位属性定位索引定位取文本内容三、语法规则练习 前言 本篇文章只是简单介绍一下Xpath及使用,总体来说比较基础。 一、Xpath简介 XPath(XML Path Language - XML路径语言),它是一种用来确定XML文档中某部分位置的语言。 Xpath以XML为基础,提供用户在数据结构树中寻找节点的能力,Xpath被很多开发者亲切的称为小型查询语言。 二、Xpath语法规则 xpath可以使用路径表达式在XML上选取节点,从而达到确 阅读详情
  1. xpath爬取58二手房实例

  2. xpath图片解析下载实例

  3. xpath爬取全国城市名称实例

  4. xpath爬取简历模板实例

=================================================================================================================================================================================================================

文章目录

  • xpath基本概念

  • xpath解析原理

  • 环境安装

  • 如何实例化一个etree对象:

  • xpath(‘xpath表达式’)

  • xpath爬取58二手房实例

  • 爬取网址

  • 完整代码

  • 效果图

  • xpath图片解析下载实例

  • 爬取网址

  • 完整代码

  • 效果图

  • xpath爬取全国城市名称实例

  • 爬取网址

  • 完整代码

  • 效果图

  • 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表达式’)

  • /:表示的是从根节点开始定位。表示一个层级

  • //:表示多个层级。可以表示从任意位置开始定位

  • 属性定位://div[@class=‘song’] tag[@attrName=‘attrValue’]

  • 索引定位://div[@class=‘song’]/p[3] 索引从1开始的

  • 取文本:

  • /text()获取的是标签中直系的文本内容

  • //text()标签中非直系的文本内容(所有文本内容)

  • 取属性:/@attrName ==>img/src

xpath爬取58二手房实例

爬取网址

https://xa.58.com/ershoufang/完整代码

from lxml import etree  
import requests  
  
if __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"]/h3/text()')[0]  
        print(title)  
        fp.write(title+'\n'+'\n')

xpath图片解析下载实例

爬取网址

https://pic.netbian.com/4kmeinv/完整代码

import requests,os  
from lxml import etree  
  
if __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爬取全国城市名称实例

爬取网址

https://www.aqistudy.cn/historydata/完整代码

import requests  
from lxml import etree  
  
if __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爬取简历模板实例

爬取网址

https://sc.chinaz.com/jianli/free.html完整代码

import requests,os  
from lxml import etree  
  
if __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"]/h1/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数据解析方法!”的全部内容,希望对你有所帮助。
​
​关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至优快云官方,朋友如果需要可以直接微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

Python 网络爬虫进阶教学全指南 本次博客将深入探究 Python 网络爬虫的核心知识与实用技巧,引领大家从入门迈向精通 阅读详情

相关推荐

【Python网络爬虫笔记】11- Xpath精准定位元素

Xpath,能够帮助开发者从复杂的网页结构中精准地提取所需信息。本文将深入探讨 Xpath 在 Python 网络爬虫中的作用、常用方法、安装与使用步骤以及典型案例。

zi__you的博客 2700

爬虫学习:Xpath提取网页数据

上文初步了解了XPath的语法,这里介绍一个技巧,无需我们自己写XPath,使用浏览器自带工具即可,自动生成XPath。XPath是一种在XML文档中查找信息的语言,可以使用它在HTML源代码文档中通过元素、属性等方式进行查找和提取数据。获取标签属性值使用@属性名,以下案例获取了属性title值:@title。实例一:根据class属性进行匹配。实例三:根据name属性进行匹配。例:/div选取根元素div。例:XPath的常用语法格式。实例二:根据id属性进行匹配。选取此元素的所有子元素。

qq_55038440的博客 2371

【愚公系列】《Python网络爬虫从入门到精通》014-XPath解析

在现代网页开发和数据抓取中,获取和处理网页中的信息是非常关键的一环。而在众多的数据提取技术中,XPath(XML Path Language)以其强大的选择能力和灵活性,成为了网页解析的重要工具。无论是提取特定元素的文本内容,还是获取复杂结构中的数据,掌握XPath的使用都能大幅提高我们的数据处理效率。在本期文章中,我们将深入探讨XPath解析的基本概念和应用技巧。我们将介绍XPath的语法、常用函数及其在Python中的实现方法,帮助你快速上手并应对各种数据提取的需求。

愚公智库 12万+

Python爬虫之xpath的详细使用(爬虫)

8、上面我们使用绝对路径,查找了所有a标签的属性等于href属性值,利用的是/---绝对路径,下面我们使用相对路径,查找一下l相对路径下li标签下的a标签下的href属性的值,注意,a标签后面需要双//。7、上面我们找到全部都是绝对路径(每一个都是从根开始查找),下面我们查找相对路径,例如,查找所有li标签下的a标签内容。3、获取某个标签的内容(基本使用),注意,获取a标签的所有内容,a后面就不用再加正斜杠,否则报错。5、打印指定路径下a标签的属性(可以通过遍历拿到某个属性的值,查找标签的内容)

墨痕诉清风的博客 3万+

Python网络爬虫基本库

网络爬虫(Web Crawler)是一种自动化程序,用于从互联网上采集信息。它通过自动访问网页并提取所需的数据,实现对大量网页的快速检索和数据抓取网络爬虫通常使用HTTP协议来访问网页,并通过解析HTML、XML等网页内容来提取数据。爬虫可以从一个起始点(如某个特定网页)开始,然后根据链接关系自动地遍历和抓取其他相关网页。

Java/Python大数据随笔 3005

Python通过Lxml库解析网络爬虫抓取到的html

Lxml是基于 libxml2解析库的Python封装。libxml2是使用C语言编写的,解析速度很好,不过安装起来稍微有点复杂。安装说明可以参考(http: //Lxml.de/installation.html),在CentOS7上中文安装说明(http://www.cjavapy.com/article/64/),使用lxml库来解析网络爬虫抓取到的HTML是一种非常高效的方式。

weixin_42098295的博客 2018

5.网络爬虫——Xpath解析

Xpath简介 XPath是一种用于在XML文档中定位节点的语言,它可以用于从XML文档中提取数据,以及在XML文档中进行搜索和过滤操作。它是W3C标准的一部分,被广泛应用于XML文档的处理和分析。 XPath使用路径表达式来描述节点的位置,这些路径表达式类似于文件系统中的路径。路径表达式由一个或多个步骤(step)组成,每个步骤描述了一个节点或一组节点。步骤可以使用关系运算符(如/和//)来连接,以便描述更复杂的节点位置。 XPath还提供了一些内置函数和运算符,可以对XML文档中的数据进行操作和计算

weixin_50804299的博客 2万+

100天精通Python(爬虫篇)——第116天:利用lxml与Xpath解析提取网页数据

一、爬虫提取网页数据的流程图 二、lxml库 1. 下载安装 2. 解析HTML网页 三、Xpath介绍 1. 选取节点 2. 谓语 3. 选取未知节点 4. 选取若干路径 5. Chrome插件 XPath Helper安装使用 6. Xpath实战..................

努力让自己发光,对的人才能迎着光而来 22万+

Python爬虫实战之xpath解析

XPath是一门在XML文档中查找信息的语言,最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。所以在Python爬虫中,我们经常使用xpath解析这种高效便捷的方式来提取信息。

阿浩的博客 4万+

Python爬虫编程思想(149):使用Scrapy抓取数据,并通过XPath指定解析规则

本文的案例会在parse方法中通过response参数设置XPath,然后从HTML代码中过滤出我们感兴趣的信息,最后将这些信息输出到PyCharm的Console中。

一个被知识诅咒的人 1734

python爬虫数据解析xpath解析详细讲解——附有详细案例

1.什么是xpath 菜鸟教程这么解释的 XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 百度百科这么解释的 是一种用来确定XML文档中某部分位置的语言 是最常用的最广泛的数据解析方式 2.xpath解析原理 ①实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中 ②调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获 3.环境的安装 pi

getture的博客 4万+

Python爬虫解析工具之xpath使用详解

文中详解介绍了Python爬虫开发中常见的数据解析方式重点是xpath解析工具,如xpath概念、xpath插件安装、lxml库安装、xpath路径表达式、xpath结合Python代码的使用

程序员小十一的博客 1万+

〖Python网络爬虫实战⑬〗- XPATH实战案例

我们通过学习了简单的Xpath操作,以及在另外一篇xpath的实战案例下,本文,继续分享一个关于xpath的实战案例。xpath最大的难点就是如何写下path后面的语法,我们要找到对应的节点,就可以了。

爱吃饼干的小白鼠的博客 1536

python网络爬虫:使用XPath进行网页解析

python网络爬虫 使用XPath进行网页解析 使用Xpath解析网页 Xpath介绍 XML路径语言(XML Path Language),它是一种基于XML的树状结构,在数据结构树中找寻节点,确定XML文档中某部分位置的语言。 需要把源文件转成树状结构,再对树状结构应用相应的xpath查询语句 基本语法 使用Xpath需要从lxml库中导入etree模块,还需使用HTML类对需要匹配的HTML对象进行初始化(XPath只能处理文档的DOM表现形式)。HTML类的基本语法格式如下。 lxml.e

m0_51877411的博客 6306

帆软 finereport FCRA 考试 题库+答案,共收录561题,大部分有答案

帆软 finereport FCRA 考试 题库+答案,共收录561题,大部分有答案 入门基础 11.多选题 以下方式中属于FineReport中预览模式的有( ) 分页预览、填报预览、新填报预览、数据分析、移动端预览 16.判断题 FineReport报表工具必须购买激活码后才能使用。 错误,可以免费获取激活码。 29.单选题 FineReport是一款利用( )语言开发的报表工具。java 41.多选题 访问帮助文档的方式有哪些?设计器中社区菜单下-帮助文档;直接访问http://help.finere

qq_37485720的博客 2万+

system_stm32f10x.c文件分析

配置系统时钟(包括系统时钟源、锁相环(PLL)倍频系数、高级高性能总线(AHB)/ 高级外设总线(APBx)预分频器以及闪存相关设置)。该函数在系统复位后的启动阶段被调用,且调用时机早于跳转到主程序之前。

Jia shuheng的博客 603

一个Python爬虫案例,带你掌握xpath数据解析方法!_python如何获取etree使用xpath的值

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。工具都帮大家整理好了,安装就可直接上手!当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

2401_84572453的博客 1075

1、Ovirt 开源虚拟化平台安装

Ovirt虚拟化Node和Engine安装

大鱼 6266
上一篇: 10 个疯狂的 Python 项目创意
下一篇: 利用Python打造一个语音合成系统(附源代码)
壹只小小码农
博客等级 码龄5年 8101粉丝 1334原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值