Я занимаюсь поиском в Интернете, чтобы открыть 5 лучших страниц результатов поиска Google. Проблема, которую я вижу, состоит в том, что программа не может выбрать указанный селектор CSS по запрограммированным критериям. Причина этого в том, что метод requests.get
(или что-то еще, чего я не знаю) анализирует исходную HTML-страницу, но с другими идентификаторами.
Мой код:
import requests, sys, webbrowser, bs4
print('Googling...')
res = requests.get('https://google.com/search?q=' + ' '.join(sys.argv[1:]))
soup = bs4.BeautifulSoup(res.text, features="html.parser")
linkElems = soup.select('.r a')
numOpen = max(5, len(linkElems))
for i in range(numOpen):
webbrowser.open('https://google.com' + linkElems[i].get('href'))
Интересующий меня фрагмент исходного HTML-кода имеет вид HTML. Я вижу это, когда проверяю веб-страницу при ручном поиске. Тот же класс в разобранном коде выглядит как
Поскольку проанализированные значения идентификатора различны, инструкция
linkElems = soup.select('.r a')
в моем коде приводит к пустому списку, и скрипт не может влиять на следующие строки в коде.
Может кто-нибудь помочь мне ответить на этот вопрос? Как мне проанализировать фактические значения тегов / атрибутов класса HTML (и других), используя метод requests.get()
в python3?
Спасибо.