Записать статус соединения в csv - PullRequest
0 голосов
/ 08 января 2020

Я использую паука, чтобы скручивать множество сайтов из списка. Я работаю так, как мне нужно, но теперь я хочу получить статус соединения. При запуске паука я вижу около 404, около 301 или некоторые ошибки DNS.

Как я могу получить статус соединения в моем csv?

import scrapy


class CmsSpider(scrapy.Spider):
    name = 'myspider'
    f = open("random.csv")
    start_urls = [url.strip() for url in f.readlines()]
    f.close()

    def parse(self, response):
        title = response.xpath('//title/text()').extract_first()
        url = response.request.url
        description = response.xpath('//meta[@name="description"]/@content').extract_first()

        yield {'URL': url, 'Page Title': title, 'Description': description}

1 Ответ

0 голосов
/ 08 января 2020

Использование

status=response.status
yield {'URL': url, 'Page Title': title, 'Description': description, 'Status':status}

взято из Проверка URL для ошибки 404 scrapy

resp.getcode () будет работать, только если urllib2 вместо scrapy.http Будет использоваться ответ, который будет неправильным.

...