Scrapy框架(五)--请求传参
在某些情况下,我们爬取的数据不在同一个页面中,例如,我们爬取一个电影网站,电影的名称,评分在一级页面,而要爬取的其他电影详情在其二级子页面中。
这时我们就需要用到请求传参。
请求传参的使用场景
当我们使用爬虫爬取的数据没有存在于同一张页面的时候,则必须使用请求传参。(深度爬取)
示例:爬取boss的岗位名称,岗位描述
# -*- coding: utf-8 -*-
import scrapy
from bossPro.items import BossproItem class BossproSpider(scrapy.Spider):
name = 'bosspro'
# allowed_domains = ['www.xxx.com']
start_urls = ['https://www.zhipin.com/c100010000-p100109/?ka=search_100109']
url = 'https://www.zhipin.com/c100010000-p100109/?page=%s&ka=page-%s'
page_num = 2
def detail_parse(self,response):
job_desc = response.xpath('//*[@id="main"]/div[3]/div/div[2]/div[2]/div[1]/div//text()').extract()
job_desc = ''.join(job_desc)
item = response.meta.get('item')
item['job_desc'] = job_desc
print(job_desc)
yield item def parse(self, response):
print(response.text)
li_list = response.xpath('//*[@id="main"]/div/div[2]/ul/li')
print(li_list)
for li in li_list:
item = BossproItem()
job_name = li.xpath('.//div[@class="job-title"]/span[1]/a/text()').extract_first()
detail_url = 'https://www.zhipin.com'+li.xpath('.//div[@class="job-title"]/span[1]/a/@href').extract_first()
print(detail_url)
print(job_name)
item['job_name'] = job_name
# meta可以将参数 传递给回调的函数
yield scrapy.Request(url=detail_url,callback=self.detail_parse,meta={'item':item}) # 请求传参就是将不同页面请求到的数据封装到item中 存储在管道 可通过meta参数传递item if self.page_num <=5:
new_url = format(self.url % (self.page_num,self.page_num))
self.page_num+=1
yield scrapy.Request(url=new_url,callback=self.parse)
Scrapy框架(五)--请求传参的更多相关文章
- scrapy框架3——请求传参
当使用scrapy爬取的数据不在同一张页面中(一次请求与数据后解析无法获得想要的全部数据),需要请求传参,在第一次解析时实例化item,将item传递,再次将请求到的数据解析后,封装在item中. 关 ...
- python爬虫---scrapy框架爬取图片,scrapy手动发送请求,发送post请求,提升爬取效率,请求传参(meta),五大核心组件,中间件
# settings 配置 UA USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, l ...
- scrapy框架post请求发送,五大核心组件,日志等级,请求传参
一.post请求发送 - 问题:爬虫文件的代码中,我们从来没有手动的对start_urls列表中存储的起始url进行过请求的发送,但是起始url的确是进行了请求的发送,那这是如何实现的呢? - 解答: ...
- scrapy框架的日志等级和请求传参, 优化效率
目录 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 请求传参 如何提高scripy的爬取效率 scrapy框架的日志等级和请求传参, 优化效率 Scrapy的日志等级 在使 ...
- 13.scrapy框架的日志等级和请求传参
今日概要 日志等级 请求传参 如何提高scrapy的爬取效率 今日详情 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是s ...
- scrapy框架的日志等级和请求传参
日志等级 请求传参 如何提高scrapy的爬取效率 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息 ...
- scrapy框架之日志等级和请求传参-cookie-代理
一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. - 日志信息的种类: ERROR : 一般错误 ...
- 爬虫开发10.scrapy框架之日志等级和请求传参
今日概要 日志等级 请求传参 今日详情 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. - 日志 ...
- Scrapy框架之日志等级和请求传参
一.Scrapy的日志等级 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. 1.日志等级(信息种类) ERROR:错误 WARN ...
- 13,scrapy框架的日志等级和请求传参
今日概要 日志等级 请求传参 如何提高scrapy的爬取效率 一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy ...
随机推荐
- 即学即会 Serverless | 初识 Serverless
简介:Serverless 架构被越来越多的业务所采纳,成为其技术选型,大多数开发者已经跨越对 Serverless 概念了解,切实向落地实践出发.本文带大家一探究竟,为什么说 Serverless ...
- Kubernetes 稳定性保障手册 -- 可观测性专题
简介: 伴随大家对稳定性重视程度的不断提升.社区可观测性项目的火热,可观测性成为了一个很热门的话题,站在不同的角度会产生不同的理解. 我们从软件开发的生命周期出发,尝试形成对可观测性的一个宏观理解,并 ...
- [GPT] golang 有那么多系统包 该如何了解和学习
在学习和了解Golang(Go语言)的系统包时,可以遵循以下步骤来逐步熟悉并掌握它们: 1. 官方文档阅读: 首先从官方文档入手,Go的标准库文档非常详尽且易于理解.你可以访问 Go标准库 来查看各个 ...
- dotnet 将控制台 Console.WriteLine 内容输出到文件
很多伙伴喜欢使用 Console.WriteLine 打日志,也许是打起来顺手.打完了之后,又想着,要是能够输出到本机文件那就更好了.既然很多伙伴都有这个想法,那 dotnet 自然就是有方便的方法让 ...
- WPF 框架开发 调试和开发 XAML 构建过程的 PresentationBuildTasks 方法
阅读本文,你可以了解如何编写开发和调试 XAML 构建为 Baml 和 g.cs 文件的过程和工具.本文也适合想要了解 WPF 的 XAML 构建过程的开发者阅读,本文提供了可以断点调试 WPF 的 ...
- C# dotnet 的锁 SemaphoreSlim 和队列
本文主要是试验在顺序进入等待 SemaphoreSlim 的任务是否会按照顺序经过锁执行 我在一个有趣的WPF程序里面,需要限制任务同时执行的线程数量,不然用户就会说用我的程序会让电脑卡渣.而我的任务 ...
- C#的基于.net framework的Dll模块编程(三) - 编程手把手系列文章
继续这个系列的博文: 一.设置DLL类库信息: 在接解决方案资源管理器中选择该Dll程序集项目,鼠标右键,选择属性,打开窗口. 点击"程序集信息",打开并编辑该Dll程序集的相关信 ...
- PostMan接口测试实用小点
PostMan接口测试实用小点 1. 接口测试变量存取操作 在Postman中有很多地方可以存储一些变量,这里只介绍经常使用的环境变量.变量设置后,在UI界面可以通过{{变量名}}获取到对应值. 在环 ...
- Codeforces Round 927 (Div. 3) EFG
E:Link 题意:给定长度小于 \(4 \times 10^5\) 的整数 \(n\),求从 \(0\) 到 \(n\) 各数位变化次数之和. 如:\(n = 12345\) 个位变化 \(1234 ...
- Kimi:文本解析利器,你相信光么?
缘起 第一次接触 kimi 是在微信群,开始以为是推广薅羊毛产品,后来在其他渠道也了解到 kimi,据说是"国产之光".我知道很多同学苦不能使用魔法久矣,索性就先踩踩这个" ...