https://www.rottentomatoes.com/m/the_lord_of_the_rings_the_return_of_the_king

Je veux obtenir le TOMATOMÈTRE et le SCORE D'AUDIENCE de ce site Web, mais j'ai une liste vide.

soup = BeautifulSoup(html, 'html.parser')
notices = soup.select('#tomato_meter_link > span.mop-ratings-wrap__percentage')
0
Ryan 7 mars 2019 à 12:36

2 réponses

Meilleure réponse

Vous pouvez utiliser le sélecteur dernier enfant pour le type span avec la classe parent. Ceci utilise 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)
1
QHarr 8 mars 2019 à 08:11

Votre code fonctionne bien

>>> 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>]

Comment avez-vous obtenu la variable html?

0
nmb.ten 7 mars 2019 à 10:22