import requests from bs4 import BeautifulSoup import pandas as pd

""" 获取指定url路径的页面 """ def douban_rank250(url): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"} r = requests.get(url, headers=headers) return r.text

""" 解析页面元素 """ def parse(html): soup = BeautifulSoup(html, "html.parser") items = soup.find_all("div", class_="item") data = pd.DataFrame(columns=["排名", "海报", "片名", "评分", "导演", "主演", "上映时间", "上映地点", "类型", "热门短评"]) for item in items: rank = item.find("em").string img_src = item.find("img")["src"] movie_title = "" spans = item.find("div", class_="hd").a.find_all("span") for span_content in spans: movie_title += span_content.string.strip() star = item.find("div", class_="star").find_all("span")[1].string infos = item.find("div", class_="bd").p.text.strip().split("\n") director = infos[0].strip("导演: ") actors = infos[1].strip("主演: ") release_date = infos[2].strip().split("/")[0].strip() release_location = infos[2].strip().split("/")[1].strip() types = item.find("div", class_="bd").p.find("span", class_="inq").string quote = item.find("div", class_="bd").p.find("span", class_="inq").string data = data.append({"排名": rank, "海报": img_src, "片名": movie_title, "评分": star, "导演": director, "主演": actors, "上映时间": release_date, "上映地点": release_location, "类型": types, "热门短评": quote}, ignore_index=True) data.to_excel("douban_rank_250.xlsx", index=False)

url = "https://movie.douban.com/top250" html = douban_rank250(url) parse(html)

豆瓣电影 Top 250 数据爬取并保存为 Excel 格式

原文地址: https://www.cveoy.top/t/topic/psHe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录