scrapy yield request使用yield返回Request的步骤是怎么样的

在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我在用scrapy抓取商品网页,如一个商品有不同颜色,而颜色的价格要求另一网页才可以拿的到,我想通过Request,调用回调后,将解析后的数据直接返回到上层,即调用Request的地方,
即在把parse_api的字典,返回到for循环下面,将yield Request(url=apiurl,callback=self.parse_api,mata =tagdict)写成VALUE = Request(url=apiurl,callback=self.parse_api,mata =tagdict)但是这样写VALUE 只会显示get成功,请问有什么办法,实现我的需求吗
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
用yield其实是异步在执行,当然不会有返回值,这种情况我一般单独用requests去请求以获取返回值
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:在scrapy提交一个链接请求是用&Request(url,callback=func)&这种形式的,而parse只有一个response参数,如果自定义一个有多参数的parse可以考虑用下面的方法实现多个参数传递。
def parse(self,response):
yield Request(url, callback=lambda response, typeid=5: self.parse_type(response,typeid))
def parse_type(self,response, typeid):
print typeid
将参数写在lambda里面封装一下就行,内函数有多少个需要传递的参数在lambda里面就需要写多少个,加上默认值就好,如果直接写到内函数会变成形参。
本文已收录于以下专栏:
相关文章推荐
yield表达式, 四种形式:
a. 不接受输入值或者输入值是None
b. 接受输入值
s = yield 1
c. 接受输入,但...
Scrapy请求对象参数
给callback函数传附加数据 & Form请求 & Scrapy Resonse对象
本节内容本部分所实现的功能是,批量的爬取网页信息,不再是像以前那样只能下载一个页面了。也就是说,分析出网页的url规律后,用特定的算法去迭代,达到把整个网站的有效信息都拿下的目的。
因为本部分讲完后...
有时需要根据项目的实际需求向spider传递参数以控制spider的行为,比如说,根据用户提交的url来控制spider爬取的网站。在这种情况下,可以使用两种方法向spider传递参数。
第一种方法...
在学习 Spring Mvc 过程中,有必要来先了解几个关键参数:
   @Controller:
         在类上注解,则此类将编程一个控制器,在项目启动 Spring 将自动扫...
最近在scrapy,突然冒出个callback,困惑好久最终在知乎上参考一些大神解答,写得非常好,这里直接搬过来了
作者:桥头堡
链接:/questio...
使用scrapy踩的坑之如何使用scrapy实现递归爬取
在使用scrapy爬取一个网站上所有的图片时,所遇到的一点坑,因为自己对scrapy不是很熟,所以最后是解决了一部分问题,但是还有一部分没有...
scrapy 在不同的抓取级别的Request之间传递参数的办法
下面的范例中,parse_item方法通过meta向parse_details方法中传递参数item,这样就可以在parse_det...
在做爬foursquare的爬虫时,需要在parse函数里以userid为文件名进行保存,有一种最简单的方法,那就是在构造初始链接时,将id=[userid]作为参数加入到链接中,
start_ur...
Scrapy爬虫入门教程十一 Request和Response(请求和响应)
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)scrapy可以进行线性/顺序抓取吗? - 知乎9被浏览1657分享邀请回答doc.scrapy.org/en/latest/intro/overview.html?highlight=asynchronously: requests are scheduled and processed asynchronously. This means that Scrapy doesn’t need to wait for a request to be finished and processed, it can send another request or do other things in the meantime. scrapy异步处理Request请求,Scrapy发送请求之后,不会等待这个请求的响应,可以同时发送其他请求或者做别的事情。现在的 Scrapy 'Request'
priority 属性, 所以 ,这样 for url in urls:
yield Request(url, callback = other_parse, priority = 1)
yield Request(next_url, callback = parse, priority = 0)
(数字越大,优先级越高, 默认为0),scrapy 保证按优先级顺序处理 Request 请求, 但是我不确定回调函数是否按顺序返回最简单的解决方法是:disable concurrency 在 settings
或者设置一个延迟6添加评论分享收藏感谢收起在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
我在用scrapy抓取商品网页,如一个商品有不同颜色,而颜色的价格要求另一网页才可以拿的到,我想通过Request,调用回调后,将解析后的数据直接返回到上层,即调用Request的地方,
即在把parse_api的字典,返回到for循环下面,将yield Request(url=apiurl,callback=self.parse_api,mata =tagdict)写成VALUE = Request(url=apiurl,callback=self.parse_api,mata =tagdict)但是这样写VALUE 只会显示get成功,请问有什么办法,实现我的需求吗
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
用yield其实是异步在执行,当然不会有返回值,这种情况我一般单独用requests去请求以获取返回值
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
请问最后有什么好的解决方案吗
该答案已被忽略,原因:无意义的内容,赞、顶、同问等毫无意义的内容
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:

我要回帖

更多关于 scrapy yield return 的文章

 

随机推荐