【数据挖掘与分析】python网络爬虫学习及实践记录 | part03-数据解析【1-4 lxml和xpath的结合-理论部分】

本文介绍了在Python爬虫中数据解析的重要工具XPath,并详细讲解了XPath的安装、基本语法以及如何结合lxml库进行HTML解析。通过实际操作,作者展示了在苏宁招聘页面上使用XPath选取元素的方法,为后续的实战部分奠定基础。
摘要由CSDN通过智能技术生成

六月底就开始停更新博文的原因是“期末周+疯狂忙专利”,暑假开始,今天刚好七月半,更完第二部分对urllib及request使用部分的博文,就开启了第三部分数据解析的新内容学习。第三部分主要是数据解析的内容,也就是建立在爬取数据后进行处理。


数据解析三个工具-Xpath|BeautifulSoup4|正则表达式

1-xpath简介以及工具安装

xpath(XML Path Language) 在XML和HTML文档中查找信息的语言,可用来在两种文档中对元素和属性进行遍历。

XPath开发工具:1. chrome插件 XPath Helper; 2.Firefox插件XPath checker

安装过程中出现了一点问题,浏览器无法成功安装这个扩展,这里找到两个链接:1.下载;2.安装。第一个是一个chrome相关插件及浏览器版本的网站,第二个是出现的安装不成功解决办法的合集。

 上面是chrome安装好后的截图,下图是火狐浏览器的。

经历一番折腾,终于安装成功,接下来开始学习语法。

语法

选取节点-通过路径表达式来选取XML文档中的节点和节点集,这些路径表达式与常规的表达式相似。

表达式 描述 实例 结果,笔记截图如下

 

跟着老师做联系,熟悉“/|//|@|[]” 的用法

 包括几种路径表达式的用法,进行了练习。

 讲完精确匹配,老师开始讲模糊匹配,当有两个class名字时,选择前者,

还有更多的 运算符,通过符号的选取连接,组合成需要的表达式。随后老师对相关语法用法进行了介绍,迅速过了一遍,可以在后面练习使用过程中再重复记忆。

接下来是第三个视频。用lxml解析html代码和文件。

lxml库

HTML/XML的解析器-解析和提取HTML/XML数据,和正则一样(C语言实现),Python HTML/XML解析器,+XPath语法→定位特定元素及节点信息。官方文档。需要安装C语言库。

视频中以腾讯招聘网页举例,但再去下载静态网页时候发现换成script标签引用的资源文件了,同样的,找了百度阿里以及字节跳动等互联网公司招聘页面发现都换了,反爬or安全起见。这里找到苏宁招聘页面作为案例。

其中在几个目标任务实现过程中发现一个问题,在对页面中所有class=section-detail的div元素无法解析,于是选取class=caption的span标签作为对照,能够解析,构造的解析方式没问题。这里查了一下网上用法,

取多个class属性值的元素,可用如下的表达式:

xpath('//div[contains(@class,"section-detail")]')   #取所有class为section-detail的元素

xpath('//div[contains(@class,"section-detail") and contains(@class,"clearfix")]') #取class有section-detail和clearfix的元素

 

 可以看到,确实抓取到了,同时附上另一种解析:利用contains函数

接下来是对于元素中信息的获取,点击后确能访问苏宁不同职位的页面。社会招聘-职位详情  

lxml结合xpath注意事项:

1.使用xpath语法,应该使用Element.xpath,返回为列表

2.获取某标签属性 

  href = tr.xpath(".//a/@href")[0]

3. 获取文本,是通过‘xpath’中的‘text()’函数,如下:

time = tr.xpath("./td[4]/text()")[0]

4.如果需要在标签下执行xpath进一步提取数据,应该子啊//前使用“.”来代表是在当前元素下获取。

好,理论知识部分【lxml和xpath的结合】已经更完,下部分是实战,豆瓣和电影天堂的爬取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值