#python #selenium #web-scraping #beautifulsoup #screen-scraping
#python #selenium #очистка веб-страниц #beautifulsoup #очистка экрана
Вопрос:
https://www.rottentomatoes.com/m/the_lord_of_the_rings_the_return_of_the_king
Я хочу получить TOMATOMETER и ОЦЕНКУ АУДИТОРИИ с этого веб-сайта, но получил пустой список.
soup = BeautifulSoup(html, 'html.parser')
notices = soup.select('#tomato_meter_link > span.mop-ratings-wrap__percentage')
Комментарии:
1. Вы имеете в виду
93%
и86%
?2. Или
Reviews Counted: 272, User Ratings: 34,679,279
?
Ответ №1:
Вы можете использовать последний дочерний селектор для типа span с родительским классом. Для этого используется BeautifulSoup 4.7.1
import requests
from bs4 import BeautifulSoup
res = requests.get('https://www.rottentomatoes.com/m/the_lord_of_the_rings_the_return_of_the_king')
soup = bs(res.content, 'lxml')
ratings = [item.text.strip() for item in soup.select('h1.mop-ratings-wrap__score span:last-child')]
print(ratings)
Ответ №2:
Ваш код работает хорошо
>>> from bs4 import BeautifulSoup
>>> html = requests.get('https://www.rottentomatoes.com/m/the_lord_of_the_rings_the_return_of_the_king').text
>>> soup = BeautifulSoup(html, 'html.parser')
>>> notices = soup.select('#tomato_meter_link > span.mop-ratings-wrap__percentage')
>>> notices
[<span class="mop-ratings-wrap__percentage">93%</span>]
Как вы получили html
переменную?