scrapy 的 request 的相关问题

2018-11-16 22:20:14 +08:00
 moxiaowei

现在我有一个爬虫,parse 到了一个页面的相关数据,但是,这个页面的有些数据需要结合 parse 中的另一个 request 的结果才能确定是否有用,类似下面的代码:

    def parse(self, response):

            ...........

            yield scrapy.Request(xxxxx, callbask=func)问题就在于 我怎么拿到这个 request 的返回值!!!!

            .......
1893 次点击
所在节点    Python
6 条回复
nicevar
2018-11-16 22:26:11 +08:00
你不会连回调的意思都不懂吧,你那个单词都写错了不是 callbask,是 callback,在这个函数里等着就行了
xzc19970719
2018-11-16 22:52:55 +08:00
callback 你用来干啥了????
Trim21
2018-11-16 22:58:31 +08:00
callback 的 response 参数就是这个请求的响应
你应该在 callback 参数对应的 func 里面处理这个请求对应的后续工作
lzhd24
2018-11-16 22:58:50 +08:00
```
def parse(self, response):
urls = ["https://www.test.com/page/{}/".format(i) for i in range(1,250)]
for url in urls:
yield Request(url,callback=self.parse2)

def parse2(self,response):
article_urls = response.xpath("//div[@class='col-sm-12 col-lg-7 col-md-7']//div//a//@href").extract()
for url in article_urls:
yield Request(url,callback=self.parse3)

def parse3(self,response):
items = XiazaiItem()
items['title']=response.xpath("//article//div//h1[@class='h2']/text()").extract()
items['content']=response.xpath("//div[@class='article__body']//p/text()").extract()
yield items
```
chengxiao
2018-11-17 01:06:46 +08:00
这种情况我一般就不用 yield 了
import requests
直接用 requests 走起
moxiaowei
2018-11-17 14:54:04 +08:00
@nicevar 再这个 callback,处理了,然后上面那个 parse 怎么拿到 callback 处理的结果?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/508658

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX