Python request.get метод не анализирует фактические идентификаторы из исходного HTML - PullRequest
0 голосов
/ 13 июня 2019

Я занимаюсь поиском в Интернете, чтобы открыть 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?

Спасибо.

...