Как извлечь атрибуты href, которые отображаются в инструментах разработчика chrome, но не выводятся в BeautifulSoup - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь почистить веб-сайт для компиляции и обобщения новостей, используя запрос Python и bs4. Ссылки (href), к которым я пытаюсь получить доступ, появляются в инструментах разработчика Chrome с этим путем:

"/ html / body / div / div / div / main / article / div / div / section / div / section / div / div [3] / ul / li [1] / a "

Я пробовал все, чтобы извлечь их, но понял, что Python s html вывод не 't go до этого уровня. Он остается по адресу:

"/ html / body / div / div / div / main / article / div / div / section / div / section"

Я использую следующий код:

import requests
from bs4 import BeautifulSoup
url = 'https://www.gp.com/news'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
for url in soup.find_all('a'):
    print(url.get('href'))

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

Заранее большое спасибо!

1 Ответ

0 голосов
/ 07 апреля 2020

Модуль requests не отображает javascript - вы должны использовать requests-html (https://github.com/psf/requests-html). Вы можете увидеть разницу, если откроете страницу в браузере, а затем посмотрите на источник (обычно CTRL-U). Он будет отличаться от того, что вы можете просматривать с помощью Инструментов разработчика, потому что последний включает в себя контент, отображаемый с помощью javascript.

...