Парсинг табличных данных
import requests
from bs4 import BeautifulSoup
url = 'https://news.mail.ru/currency/src/CBRF/charcode/USD/'
data = requests.get(url).text
block = BeautifulSoup(data, 'lxml')
heads = block.find('tbody', class_='sc-fvxzrP DXNGm').find_all('tr', class_='sc-jQrDum klKPSx')
for i in heads:
print(i.text)
При запуске кода выдает ошибку: heads = block.find('tbody', class_='sc-fvxzrP DXNGm').find_all('tr', class_='sc-jQrDum klKPSx') AttributeError: 'NoneType' object has no attribute 'find_all' Подскажите в чем причина ошибки?
Ответы (1 шт):
Автор решения: Universall
→ Ссылка
selenium - решение. Здесь я довольно понятно объяснил
import bs4
import time
from selenium import webdriver # pip install selenium
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager # pip install webdriver-manager
with webdriver.Chrome(service=Service(ChromeDriverManager().install())) as driver: # Открываем хром
driver.get("https://news.mail.ru/currency/src/CBRF/charcode/USD/") # Открываем страницу
time.sleep(5) # Время на прогрузку страницы
soup = bs4.BeautifulSoup(driver.page_source, 'html.parser')
print(soup.find("tbody", class_="sc-fvxzrP DXNGm"))