python的scrapy爬虫模块间进行传参_Python爬虫第八天:ScrapyShell|yield item和请求传参...

本文介绍了Python的Scrapy框架,重点讲解了Scrapy Shell的使用,包括如何调试和测试XPath或CSS表达式。接着讨论了如何在Scrapy中yield item和发送请求,特别是在多页面抓取和图片下载的情景下。最后,阐述了如何在不同模块间进行请求传参,处理需要多次请求才能获取完整信息的情况。
摘要由CSDN通过智能技术生成

内容简述:

一:Scrapy Shell

二:yield item和请求

三:请求传参-高级请求

一:Scrapy Shell

运行在终端的工具,用来调试scrapy。可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式。

简单使用—糗事百科

【温馨提示】:当咱们有时加载https请求时,有可能会报错

问题描述:[]

解决方案:

第一步: scrapy shell -s USER_AGENT=’Mozilla/5.0′

第二步:fetch(‘url’)

示例参考: fetch(“https://www.qiushibaike.com”)

A-response对象

属性

text:字符串格式的html   body:二进制格式的html     encoding:响应编码

url:所请求的url              status:响应状态码              headers:响应头

方法:

xpath():据xpath获取所有selector对象(scrapy内部封装的一个类的对象)的列表

例:获取糗事百科用户名

name_list=response.xpath(‘//div[@class=”author clearfix”]//img/@alt’)

print(len(name_list))               print(name_list.extract())

print(name_list.extract()[0])    print(name_list.extract_first())

css():获取符合要求的所有selector对象的列表

获取内容

name_list=response.css(‘#content-left a > h2::text’)接着extract()

获取属性

css_list=response.css(‘#content-left a > img::attr(src)’)接着extract()

一般不使用,因为中间scrapy会将这个选择器给翻译成xpath再去解析

selector对象

xpath(‘./’):从当前节点向下开始查找

css():和上面的response的方式一样

extract():将对象转化为unicode字符串

extract_first():如果xpath获取不到内容extract_first()返回None,extract()报错

B-Item对象

类字典对象,用法和字典一样,将这个对象转化为字典 stu = dict(stu)

yY3yIb.png

二:yield item和请求

管道的后期处理:数据的存储|下载

【温馨提示】写好pipeline的时候,需要在settings文件中打开一个配置

ITEM_PIPELINES = { ‘huaproject.pipelines.HuaprojectPipeline’:300,  }

第一个:处理的管道

第二个:优先级,越小优先级越高(0-1000)

多页面抓取及图片批量下载

url规律

第一页list-1-0.html

第二页list-1-1.html

第n页list-1-(n-1).html

三:请求传参【高级请求】

如果一个页面不能将一个item的所有信息全部拿到,需要再次发送请求,再次解析才能将item的所有信息拿到。这种情况怎么办?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值