前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Scrapy爬虫框架中meta参数的使用示例演示(下)

关于Scrapy爬虫框架中meta参数的使用示例演示(下)

作者头像
Python进阶者
发布2020-11-13 10:15:56
7360
发布2020-11-13 10:15:56
举报

络纬秋啼金井阑,微霜凄凄簟色寒。

/前言/

上一篇文章我们已经了解了meta参数,关于Scrapy爬虫框架中meta参数的使用示例演示(上)接下来我们将先从文章列表页中提取出封面图的URL,然后再一起来感受meta。

/分析过程/

通过与网页信息的交互,我们可以发现封面图存放在一个叫a标签下面,如下图所示。

可以很清楚的看到图片链接的URL,而且之间复制这个URL在网页中进行打开的话,也可以正常访问,如下图所示。像这种图片的URL是存放在第三方服务器上面的,可以正常访问到。

但是也有的时候网站封面图并不是存放在第三方服务器上,并不会将图片的域名呈现出来,如下图所示,如果直接访问URL的话会出现404错误(无可访问资源)。

这种情况默认是该图片的资源加载在当前域名之下的,只需要将网页主域名和图片的URL地址进行连接组合(在代码中通过parse.urljoin()函数进行实现),尔后便可以访问到图片了,如下图所示。

/代码实现/

接下来进行代码实现,下图中的1和2部分的代码都是可以实现这个爬虫逻辑的,从编程的角度,还是建议大家还是多多使用第1种方法,也是经常会用得到的,这是xpath的嵌套使用,该方法减少了代码冗余,而且逻辑实现也很清晰。

将front_img_url取到之后,再将其传给meta,如下图所示。

一般的,当我们在选择器上使用.extract()或者.extract_first(“”)函数之后,该选择器就变成了一个数组,就无法再进行嵌套选择了,所以这里选择将标签块取出来,然后再进行嵌套选择,这也是Scrapy给我们带来的便利之处。

完成好上面的代码之后,便可以进行Debug调试了,这里简单的安利一下Pycharm中关于Debug的两个快捷键F6和F8,F6的作用是继续执行Debug,通常是进入到下一行;F8的作用是跳出当前的Debug,跳至下个断点,在调试的时候经常会用到。这里将断点打在parse_detail()函数这里,一起来看看meta参数是否传递过来了,如下图所示。

通过上图可以看到,在response下,里边有一个meta,可以得知meta参数顺利传递过来了,是一个字典,并且我们可以看到封面图front_img_url的链接已经获取到了,而且在浏览器中可以正常访问到该图片,如下图所示,说明这种传递方式是非常有效的,接下来我们需要在parse_detail()函数中去用一个item接受它。

这里定义变量front_img_url用于接收封面图信息,其传递过来是字典的形式,所以可以用字典的形式去获取,当然也可以用get方法,下面两种方式任选其一均可。

至此,我们已经完成封面图的提取。小伙伴们,关于Scrapy爬虫框架中meta参数的用法你们get到了吗?

/小结/

本文基于上篇meta的理论基础,结合网页分析和代码实现,主要介绍了Scrapy爬虫框架中meta参数的使用示例,希望对大家的学习有帮助。

想学习更多关于Python的知识,可以参考学习网址:http://pdcfighting.com/,或者点击阅读原文,可以直达噢~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档