response.body возвращает пустой файл, используя scrapy в python - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь создать веб-сканер, используя scrapy из python, который извлекает информацию, которую Google показывает справа, когда вы выполняете поиск

URL-адрес, который я использую: https://www.google.com/search?q=la%20cuarta

В этом другом вопросе я задал тот же ( вопрос ), кто-то предложил мне написать response.body в файл, но я получаю пустой файл, когда я пробовал другой URL, это не сЛУЧИЛОСЬ

Это мой код:

import scrapy

class google1(scrapy.Spider):
    name = 'google1'

    def start_requests(self):
        urls = ['http://quotes.toscrape.com/page/1/',
        'http://quotes.toscrape.com/page/2/',
        'https://www.google.com/search?q=la%20cuarta',
        'https://docs.scrapy.org/en/latest/intro/tutorial.html']  
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'page-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)

Он даже не пишет файл из поиска google, но в оболочке scrapy response.body не пусто

1 Ответ

2 голосов
/ 28 мая 2019

Хорошо, я проверил ваш код, и он работает, то есть пауки загружают все страницы, включая страницу googel.Ваша проблема может быть в настройках, добавьте их в свои настройки:

USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:39.0) Gecko/20100101 Firefox/39.0'
ROBOTSTXT_OBEY = False
...