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

点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

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

/前言/

   上一篇文章我们已经了解了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/,或者点击阅读原文,可以直达噢~

------------------- 送书 -------------------

内容简介

1、《Python Web开发从入门到精通》,内容如其书名,不多赘述,欢迎大家前来取书,共送2本书。

 《Python Web开发从入门到精通》分为3部分:

    第1部分是基础篇,带领初学者实践Python开发环境和掌握基本语法,同时对网络协议、Web客户端技术、数据库建模编程等网络编程基础深入浅出地进行学习;

    第2部分是框架篇,学习当前*流行的Python Web框架,即Django、Tornado、Flask和Twisted,达到对各种Python网络技术融会贯通的目的;

    第3部分是实战篇,分别对几种常用WEB框架进行项目实践,利用其各自的特点开发适用于不同场景的网络程序。

活动规则

参与方式:在本公众号后台回复 “送书”关键字,即可参与本次的送书活动。

公布时间:2020年11月11号(周三)晚上20点

领取事宜:请小伙伴添加小助手微信: pycharm1314,或者扫码添加好友。添加小助手的每一个人都可以领取一份Python学习资料,更重要的是方便联系。

注意事项:一定要留意微信消息,如果你是幸运儿就尽快在小程序中填写收货地址、书籍信息。一天之内没有填写收货信息,送书名额就转给其他人了噢,欢迎参与~

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值