Bs4 не найдет нужный элемент - PullRequest
0 голосов
/ 06 марта 2020

Код просто ничего не печатает вместо печати запрошенного элемента

    from bs4 import BeautifulSoup
    import requests

    result = requests.get("https://www.instagram.com/hey_itz_hitler/")
    src = result.content

    soup = BeautifulSoup(src, "lxml")

    try:
        for tag in soup.find_all("span", {"class" : "g47SY"}):
        print(tag.text)

    except:
        print("There has been an error")

1 Ответ

0 голосов
/ 06 марта 2020

Вы должны использовать селен для такого рода очистки. Это связано с тем, что страница загружается динамически, и с запросами вы получаете исходный источник страницы перед добавлением содержимого в HTML и рендерингом.

Попробуйте получить следующий фрагмент кода, чтобы получить ожидаемый результат:

import atexit
from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Chrome()
atexit.register(driver.quit)
driver.get("https://www.instagram.com/hey_itz_hitler/")

soup = BeautifulSoup(driver.page_source, "lxml")

try:
    # for tag in soup.select("a[href*='followed_by_list'] > span"):
    for tag in soup.select("span.g47SY"):
        print(tag.text)
except:
    print("There has been an error")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...