共计 956 个字符,预计需要花费 3 分钟才能阅读完成。
自动写代码机器人,免费开通
Scrapy 中怎么利用 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() 将其强制转换为数字。
看完上述内容,你们掌握 Scrapy 中怎么利用 Xpath 选择器从网页中采集目标数据的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!
向 AI 问一下细节