【问题标题】:How to extract movie genre from Metacritic website using BeautifulSoup如何使用 BeautifulSoup 从 Metacritic 网站中提取电影类型
【发布时间】:2022-01-11 22:35:25
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 现在看看@JonSG

标签: python python-3.x web-scraping beautifulsoup


【解决方案1】:

您过于专注于获得餐桌。只需使用您确定的元素。这是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']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多