Как извлечь новости Google с определенным ключевым словом с помощью scrapy?

Я новичок в scrapy, пытаюсь извлечь новости Google из указанной ниже ссылки:

https://www.google.co.in/search?q=cholera+news&safe=strict&source=lnms&tbm=nws&sa=X&ved=0ahUKEwik0KLV-JfYAhWLpY8KHVpaAL0Q_AUICigB&biw=1863&bih=966

Было предоставлено ключевое слово "холера", которое показывает небольшие блоки различных новостей, связанных с ключевым миром холеры. Далее я пробую это с помощью scrapy, чтобы извлечь каждый блок, содержащий отдельные новости.

fetch("https://www.google.co.in/search?q=cholera+news&safe=strict&source=lnms&tbm=nws&sa=X&ved=0ahUKEwik0KLV-JfYAhWLpY8KHVpaAL0Q_AUICigB&biw=1863&bih=966")

 response.css(".ts._JGs._KHs._oGs._KGs._jHs::text").extract()

где .ts._JGs._KHs._oGs._KGs._jHs::text представляет div class="ts _JGs _KHs _oGs _KGs _jHs для каждого блока новостей.

но он не возвращает None.


person jax    schedule 20.12.2017    source источник
comment
на мой взгляд, вы должны использовать https://news.google.com/ в качестве URL-адреса, после этого перейдите в окно поиска и заполните форму поиска. по вашему запросу, в данном случае холера   -  person P.hunter    schedule 20.12.2017
comment
Рассмотрите возможность получения данных через RSS.   -  person Casper    schedule 20.12.2017


Ответы (2)


После борьбы я нашел способ избавиться от желаемых данных с помощью очень простого трюка,

fetch("https://www.google.co.in/search?q=cholera+news&safe=strict&source=lnms&tbm=nws&sa=X&ved=0ahUKEwik0KLV-JfYAhWLpY8KHVpaAL0Q_AUICigB&biw=1863&bih=966")

и тег css selector "class =" g "можно использовать для извлечения желаемого блока, как этот

 response.css(".g").extract()

которые возвращают список всех отдельных новостных блоков, которые можно использовать в дальнейшем на основе индекса списка, например:

 response.css(".g").extract()[0]

or

 response.css(".g").extract()[1]
person jax    schedule 20.12.2017

В scrapy shell используется view(response), и вы увидите в веб-браузере то, что fetch().

Google использует JavaScript для отображения данных, но также может отправлять страницы, которые не используют JavaScript. Но страница без JavaScript обычно имеет разные теги и классы.

Вы также можете отключить JavaScript в своем браузере, а затем открыть Google, чтобы увидеть теги.

Попробуй это:

response.css('#search td ::text').extract()
person furas    schedule 20.12.2017