同步操作将从 编程语言算法集/Python 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import bs4import requestsdef get_movie_data_from_soup(soup: bs4.element.ResultSet) -> dict[str, str]:return {"name": soup.h3.a.text,"genre": soup.find("span", class_="genre").text.strip(),"rating": soup.strong.text,"page_link": f"https://www.imdb.com{soup.a.get('href')}",}def get_imdb_top_movies(num_movies: int = 5) -> tuple:"""Get the top num_movies most highly rated movies from IMDB andreturn a tuple of dicts describing each movie's name, genre, rating, and URL.Args:num_movies: The number of movies to get. Defaults to 5.Returns:A list of tuples containing information about the top n movies.>>> len(get_imdb_top_movies(5))5>>> len(get_imdb_top_movies(-3))0>>> len(get_imdb_top_movies(4.99999))4"""num_movies = int(float(num_movies))if num_movies < 1:return ()base_url = ("https://www.imdb.com/search/title?title_type="f"feature&sort=num_votes,desc&count={num_movies}")source = bs4.BeautifulSoup(requests.get(base_url).content, "html.parser")return tuple(get_movie_data_from_soup(movie)for movie in source.find_all("div", class_="lister-item mode-advanced"))if __name__ == "__main__":import jsonnum_movies = int(input("How many movies would you like to see? "))print(", ".join(json.dumps(movie, indent=4) for movie in get_imdb_top_movies(num_movies)))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。