Рубрики
Без рубрики

Scrape Google Top Stories, используя Python

Содержание: вступление, импорт, то, что будет скранировано, процесс, код, ссылки, outro. Интро это … Теги с Python, HTML, WebScraping, учебником.

Содержание: вступление, импорт, то, что будет скранировано, процесс, код, ссылки, outro.

вступление

Этот блог POST – это продолжение серии Scraping сети Google. Здесь вы увидите, как соскрести Google Top Stories из результатов органического поиска, используя Python с BeautifulSoup , Запросы библиотеки. Будет показано альтернативное решение API.

Импорт

from bs4 import BeautifulSoup
import requests, lxml
from serpapi import GoogleSearch

Что будет соскреблено

Процесс

Выбор контейнер , Опубликованная дата , Название CSS селекторы.

Выбор ссылка CSS селектор.

Код

from bs4 import BeautifulSoup
import requests, lxml

headers = {
    'User-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"
}

params = {
  'q': 'john cena',
  'hl': 'en',
  'gl': 'us',
}

html = requests.get('https://www.google.com/search?q=', headers=headers, params=params).text
soup = BeautifulSoup(html, 'lxml')

for result in soup.select('.yLWA8b'):
    title = result.select_one('.nDgy9d').text.replace('\n', '')
    link = result.select_one('.WlydOe')['href']
    published_date = result.select_one('.ecEXdc span').text
    print(f'{title}\n{link}\n{published_date}\n')

----------------
'''
Nikki Bella's Reported Response to John Cena's New Attitude on Having Kids Is All Class
https://www.yahoo.com/entertainment/nikki-bellas-reported-response-john-194941780.html
2 days ago

When will John Cena win his seventeenth World Championship?
https://www.sportskeeda.com/wwe/when-will-john-cena-win-seventeenth-world-championship
16 hours ago

Is Vin Diesel Really The Same Height As John Cena? | Screen Rant
https://screenrant.com/f9-john-cena-vin-diesel-height-comparison-same-different/
20 hours ago
'''

Использование API Google Top Stories API

Serpapi – это платный API с бесплатной пробной версией 5000 поисков.

В этом примере API Google Top Stories предоставляет еще несколько результатов по отношению к коду выше. Кроме того, если вы не заинтересованы в поддержании анализа, выяснив, почему дела не ведут себя так, как должны, или обход блоков от Google, решение API – это путь.

from serpapi import GoogleSearch
import os, json

params = {
    "api_key": os.environ["API_KEY"], # pycharm environment
    "engine": "google",
    "q": "john cena",
    "gl": "us",
    "hl": "en"
}

search = GoogleSearch(params)
results = search.get_dict()

for result in results['top_stories']:
    print(json.dumps(result, indent=2, ensure_ascii=False))

-------------
'''
{
  "title": "Nikki Bella's Reported Response to John Cena's New Attitude on Having Kids Is All Class",
  "link": "https://www.yahoo.com/entertainment/nikki-bellas-reported-response-john-194941780.html",
  "source": "Yahoo",
  "date": "2 days ago",
  "thumbnail": "https://serpapi.com/searches/60e30aaf1071f423feda11f5/images/b544986d11640bd39c43fea8c2bbc111dec815b3d8089f08.jpeg"
}
{
  "title": "When will John Cena win his seventeenth World Championship?",
  "link": "https://www.sportskeeda.com/wwe/when-will-john-cena-win-seventeenth-world-championship",
  "source": "Sportskeeda",
  "date": "17 hours ago",
  "thumbnail": "https://serpapi.com/searches/60e30aaf1071f423feda11f5/images/b544986d11640bd38557cb4783461be1ca3dfe7ff6bcb2a0.jpeg"
}
...
'''

Ссылки

Код в онлайн -IDEGoogle Top Stories API

Опередить

Если у вас есть какие-либо вопросы или что-то не работает правильно, или вы хотите написать что-то еще, не стесняйтесь бросить комментарий в разделе комментариев или через Twitter на @serp_api Анкет

Ваш, Dimitry и остальная часть команды Serpapi.

Оригинал: “https://dev.to/dimitryzub/scrape-google-top-stories-using-python-3j4”