打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在Scrapy中如何利用Xpath选择器从网页中采集目标数据——详细教程(上篇)

青山隐隐水迢迢, 秋尽江南草未凋。

/前言/

   上一篇文章我们讲述了网页结构和Xpath表达式语法知识,感兴趣的小伙伴可以戳这篇文章:网页结构的简介和Xpath语法的入门教程。我们了解到Xpath表达式最好是通过自己进行网页分析和针对性的选取唯一性的标签进行定位,可以提高提取效率,而且还不容易出错。

    有了Xpath表达式基础之后,这篇文章我们将通过Xpath表达式来进行提取数据,具体教程如下,仍然以之前的网站为例进行说明,我们的目标数据是标题、发布日期、主题、正文内容、点赞数、收藏数、评论数等。具体的教程如下。  

/具体实现/

    1、针对标题,在上篇文章中就有提及,其Xpath表达式有多种,任选其一即可,在scrapy shell脚本下进行调试,得到标题的提取方式,并写入到爬虫主体文件中。

    2、接下来是发布日期的提取,仍然是以交互式的方式实现网页与源码之间的交互,如下图所示。

    3、而且标签“entry-meta-hide-on-mobile”具有全局唯一性,可以很方便的定位到元素。

    4、根据网页结构,我们可轻易的写出发布日期的Xpath表达式,可以在scrapy shell中先进行测试,再将选择器表达式写入爬虫文件中,详情如下图所示。

    这里有部分杂质信息,需要利用strip()和replace()函数剔除多余的杂质,还日期一个“清白”。

    5、关于文章主题标签的Xpath表达式,可以看到其在网页结构上处于日期的下方,如下图所示。

    因此可以通过更改一下发布日期的Xpath表达式,即可获取到文章主题标签。

    6、文章主题标签处于a标签下,如下图所示。

    获取到整个列表之后,利用join函数将数组中的元素以逗号连接生成一个新的字符串叫tags,然后写入Scrapy爬虫文件中去。

    7、对于点赞数,其分析方法同之前一致,找到唯一的一个标签“vote-post-up”即可定位到数据。

    8、细心的小伙伴可能会看到“vote-post-up”属性并不是class标签中唯一一个属性,所以一开始的Xpath表达式匹配的内容为空。

    这里给大家安利一个小技巧,如果标签中存在多个属性,且属性是唯一的时候,可以利用contains函数进行助攻,其用法是'//span[contains(@class,"vote-post-up"),务必要多加练习,否则容易忘记。根据网页结构写出Xpath表达式,调试的过程如下图所示。

    取出的点赞数是个字符串,需要利用int()将其强制转换为数字。

    未完待续~~~,下一篇文章将继续分享Xpath表达式数据采集方法。

/小结/

    本文基于Xpath理论基础,主要介绍了Scrapy爬虫框架中利用Xpath选择器提取某个网页中目标数据的方法,为后面抓取全网数据埋下伏笔,更精彩的操作在下篇文章奉上,希望对大家的学习有帮助。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
4、web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
【动画】如何用scrapy命令行访问、解析网页数据
后羿采集器——良心的爬虫软件
第一个最基础的Python程序
学会Python这几个类库使用,快速写爬虫不是问题(详细步骤附源码)
小白学 Python 爬虫(35):爬虫框架 Scrapy 入门基础(三) Selector 选择器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服