繁体   English   中英

如何使用 BeautifulSoup 从 Metacritic 网站提取电影类型

[英]How to extract movie genre from Metacritic website using BeautifulSoup

我想为在https://www.metacritic.com/browse/movies/score/metacore/all/filtered?sort=desc找到的 Metacritic 的前 500 部电影做这个

每个类型都将从这样的详细链接中提取(对于第一个): https://www.metacritic.com/movie/citizen-kane-1941/details

只需要一些帮助从上述详细链接中的 HTML 中提取流派部分

我的 get_genre function (但我得到一个属性错误)

def get_genre(detail_link):
 detail_page = requests.get(detail_link, headers = headers)
 detail_soup = BeautifulSoup(detail_page.content, "html.parser")


try:
    #time.sleep(1)
    table=detail_soup.find('table',class_='details',summary=movie_name +" Details and Credits")
    #print(table)
    gen_line1=table.find('tr',class_='genres')
    #print(gen_line1)
    gen_line=gen_line1.find('td',class_='data')
    #print(gen_line)
except:
    time.sleep(1)
    year=detail_soup.find(class_='release_date')
    year=year.findAll('span')[-1]
    year=year.get_text()
    year=year.split()[-1]
    
    table=detail_soup.find('table',class_='details',summary=movie_name +" ("+ year +")"+" Details and Credits")
    #print(table)
    gen_line1=table.find('tr',class_='genres')
    #print(gen_line1)
    gen_line=gen_line1.find('td',class_='data')

    
genres=[]
for line in gen_line:
    
    genre = gen_line.get_text()
    genres.append(genre.strip())
   
    genres=list(set(genres))
    
 
genres=(str(genres).split())
return genres

你太专注于拿到桌子了。 只需使用您确定的元素。 这是select的示例

from bs4 import BeautifulSoup
import requests

headers={'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_0) AppleWebKit/536.1 (KHTML, like Gecko) Chrome/58.0.849.0 Safari/536.1'}
detail_link="https://www.metacritic.com/movie/citizen-kane-1941/details"
detail_page = requests.get(detail_link, headers = headers) 
detail_soup = BeautifulSoup(detail_page.content, "html.parser")
genres=detail_soup.select('tr.genres td.data span')
print([genre.text for genre in genres])
>>> ['Drama', 'Mystery']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM