python请求状态码的问题

2018-12-15  本文已影响0人  星辰大海的碎片

背景是用scrapy来抓取一个网站的列表页的时候有一个url是404,其它url是200,但是我在判断状态码的时候发现了一些问题

def start_requests(self):
      yield Request(url=self.url,callback=self.parse_project,errback=self.errback_httpbin))#这个url是200

def parse_project(self, response):
    UrlModel().update_url_status((self.name, self.source, self.url, self.ch_area, self.ch_city, self.ch_region,
                                  self.en_area, self.en_city, self.en_region, response.status, self.type))
    for i in range(10):
         detail_url='http://www.bac.xn/im/'+str(i)+'html' #假设其中九个200其中一个url状态码是404
         yield self.make_requests_from_url(detail_url)

def make_requests_from_url(self, url):
    return Request(url,callback=self.parse_info)

def parse_info(self, response):
    print response.status  
    print requests.get(response.url).status_code

这是基本逻辑demo(别傻了,我会提交完整代码才怪)。
理想状态下response.status的状态码是response.url的。
现在的问题是在parse_info函数中response.status的状态码全部都是200,但是requests.get(response.url).status_code的状态码有一个会显示404。
我要的结果也是9条200一条404。很明显requests.get(response.url).status_code是对的,但是response.status 在一个不知道的地方出现了错误


requests。它是一个Python第三方库

上一篇 下一篇

猜你喜欢

热点阅读