2015-10-28 4 views
0

Когда я пытаюсь сканировать Google для результатов поиска, Scrapy только дает домашнюю страницу Google: http://pastebin.com/FUbvbhN4Scrapy: Google Crawl не работает

Вот мой паук:

import scrapy 

class GoogleFinanceSpider(scrapy.Spider): 
    name = "google" 
    start_urls = ['http://www.google.com/#q=finance.google.com:+3m+co'] 
    allowed_domains = ['www.google.com'] 

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

Есть ли что-то неправильно с этим URL-адресом в качестве исходного URL-адреса? Когда я открываю его в своем браузере - помещая его в адресную строку (не заполняя форму поиска) - я получаю действительные результаты поиска.

ответ

1

Да, похоже, что адрес перенаправляет на главную страницу:

пример с scrapy shell http://www.google.com/#q=finance.google.com:+3m+co:

... 
[s] request <GET http://www.google.com/#q=finance.google.com:+3m+co> 
[s] response <200 http://www.google.com/> 
... 

Проверка URL это имеет смысл, не содержащий параметры, но #q (который не является параметром url), и браузер является тем, кто распознает это и делает его поиском Google, поэтому он не является именно URL-адресом.

правильный поиск Google URL является: http://www.google.com/search?q=YOURQUERY

+0

Ах, да. Это связано с тем, что Chrome поддерживает Google. Когда я пытаюсь это сделать в Safari, он делает то же самое (перенаправляет на главную страницу Google). –

+0

отлично, так это работало сейчас? – eLRuLL

+0

Да, спасибо! –

2

для большинства случаев, Google будет переадресовывать паук на страницу капчи, результаты поиска Бинга легче ползать.

есть проект для сканирования результатов поиска от Google/Bing/Baidu https://github.com/titantse/seCrawler

Смежные вопросы