为什么Python Scrapy返回空响应

时间:2018-07-13 08:08:40

标签: python web-scraping scrapy scrapy-spider

我正试图从网站上获取车辆清单。我正在使用Python和Scrapy。

但是在某些情况下,我的回答是空的。每次都会发生这种情况,但不是在同一位置,也不是在同一网址上。

代码如下:

if init_total_results > 400:
      urls_with_mileage_ranges = []

      for mileage in MILEAGE_RANGES:
          if mileage[1] <= MAX_MILEAGE:
              new_link = '{0}&kmfrom={1}&kmto={2}'.format(init_url, mileage[0], mileage[1])
              urls_with_mileage_ranges.append(new_link)
              for url in urls_with_mileage_ranges:
                  yield scrapy.Request(url, callback=self.parse_pages)

urls_with_mileage_ranges如下:

[
    'https://www.autoscout24.be/nl/resultaten?cy=B&size=20&atype=C&mmvmk0=29&kmfrom=0&kmto=2500',
    'https://www.autoscout24.be/nl/resultaten?cy=B&size=20&atype=C&mmvmk0=29&kmfrom=2501&kmto=5000',
    'https://www.autoscout24.be/nl/resultaten?cy=B&size=20&atype=C&mmvmk0=29&kmfrom=5001&kmto=10000',
    'https://www.autoscout24.be/nl/resultaten?cy=B&size=20&atype=C&mmvmk0=29&kmfrom=10001&kmto=15000',
    'https://www.autoscout24.be/nl/resultaten?cy=B&size=20&atype=C&mmvmk0=29&kmfrom=15001&kmto=20000',
    'https://www.autoscout24.be/nl/resultaten?cy=B&size=20&atype=C&mmvmk0=29&kmfrom=20001&kmto=25000'
]

parse_pages函数如下:

def parse_pages(self, response):
    try:
        # Get total result for every range
        total_results = int(response.css('h1 span.cl-filters-summary-counter::text').extract_first().replace('.', ''))
        urls_to_fetch = create_urls_to_fetch(total_results, response.url)

        # call parse_page function for every url
        for url in urls_to_fetch:
            yield scrapy.Request(url, callback=self.parse_page)

    except Exception as e:
        capture_error(str(e))

对于urls_with_mileage_ranges中的每个页面,我都会得到status 200,但是对于total_results,有时会出现错误。就像我说的那样,这每次都会发生,但不会在同一位置,也不会在同一网址上发生。我得到的错误是:

'NoneType' object has no attribute 'replace'

自动侦察器上的每个页面都会渲染该部分,如下所示:

enter image description here

如果我做inspect_element,则如下所示:

enter image description here

因此,一切似乎都很好,但仍然出现该错误。

任何建议如何解决?

0 个答案:

没有答案