Парсинг выдачи Google
Написал код по парсингу доменов в выдаче в поиске Google:
from requests_html import HTMLSession
keyword = input('Введите запрос: ')
session = HTMLSession()
resp = session.get(f'https://www.google.com/search?q={keyword}&num=10&hl=en')
links = resp.html.xpath('//div[@class="r"]/a[1]/@href')
domains = [x.split('/')[2] for x in links if 'http' in x]
contents = '\n'.join(domains)
with open('list_domains.txt', 'w') as f:
f.write(contents)
print('*' * 50)
print(domains)
Но почему-то данные не парсятся. Не могу понять - либо ошибка в коде, либо изменилась верстка выдачи, но вроде как все корректно.
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
Попробовал в Google Colab - вроде всё работает.
Введите запрос: sprite
**************************************************
['www.sprite.com', 'www.sprite.com', 'www.coca-colacompany.com', 'en.wikipedia.org', 'en.wikipedia.org', 'www.facebook.com', 'www.amazon.com', 'www.amazon.com', 'twitter.com', 'www.cokesolutions.com']
У вас хотя бы resp.status_code какой?
Автор решения: OKova
→ Ссылка
429 ошибка - это гугл вам даёт разгадывать капчу. Вы много запросов посылаете за короткое время.