首页 > 解决方案 > 使用 Python 和 Beautiful Soup 获取 IMDB 评分

问题描述

我在这里尝试了几种不同的方法,但似乎没有任何效果,所以我希望你能提供任何帮助!

我正在尝试抓取 IMDB 页面(例如:https ://www.imdb.com/title/tt0120382/ )以获取电影的评分。当我抓取页面上的链接文本时,我设法做了类似的事情。效果很好,但这不是链接,所以我尝试过的任何方法都没有奏效。

评级绝对是纯 HTML 格式的:

    "ratingCount": 905028,
"bestRating": "10.0",
"worstRating": "1.0",
"ratingValue": "8.1"

关于从页面中检索“8.1”值的最佳方法有什么想法吗?非常感谢你的帮助!

干杯,阿里

标签: pythonweb-scrapingbeautifulsouppycharm

解决方案


rating 是一个带有 attribute 的 span 元素itemprop=ratingValue,所以使用 BeautifulSoup 比较容易找到它。

import requests
from bs4 import BeautifulSoup

html = requests.get('https://www.imdb.com/title/tt0120382/').text
soup = BeautifulSoup(html, 'html.parser')
print(soup.find('span', {'itemprop': 'ratingValue'}).text)

输出

8.1

推荐阅读