如何使用BeautifulSoup从IMDB剧集页面抓取特定剧集名称?
解决IMDB剧集标题抓取问题
你之前直接用<a>标签抓不到标题,是因为页面里的<a>标签太多,得精准定位到每个剧集条目里的标题链接。结合页面结构,给你修改后的代码,能同时拿到剧集标题和对应的评分:
import requests from bs4 import BeautifulSoup first_url = 'https://www.imdb.com/search/title/?series=tt0206512&view=simple&sort=release_date,asc' page = requests.get(first_url) soup = BeautifulSoup(page.content, 'html.parser') # 先获取所有剧集的条目容器,确保标题和评分一一对应 episode_items = soup.find_all("div", class_="ipc-metadata-list-summary-item") for item in episode_items: # 抓取剧集标题:定位到条目内的标题链接,提取文本 title = item.find("a", class_="ipc-title-link-wrapper").get_text(strip=True) # 抓取评分:复用你之前的逻辑,同时做容错处理 rating_div = item.find("div", class_="col-imdb-rating") rating = rating_div.get_text(strip=True) if rating_div else "暂无评分" print(f"剧集标题:{title} | 评分:{rating}")
关键点说明
- 先定位每个剧集的父容器
ipc-metadata-list-summary-item,保证每一组标题和评分对应,不会错位 - 标题部分专门找条目下带
ipc-title-link-wrapper类的<a>标签,这就是承载剧集名称的元素 - 评分部分加了判断,避免遇到无评分的剧集时报错
内容的提问来源于stack exchange,提问作者bmatt23
相关产品推荐
相关产品推荐

