要将数据保存为Excel格式,可以使用Python中的第三方库pandas来进行操作。首先,需要导入pandas库:

import pandas as pd

然后,在解析页面的函数中,创建一个空的DataFrame来存储数据:

data = pd.DataFrame(columns=['排名', '海报', '片名', '评分', '导演', '主演', '上映时间', '上映地点', '类型', '热门短评'])

接下来,在解析页面元素的代码中,将获取到的数据存入DataFrame中:

获取排名

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

将数据存入DataFrame中

data = data.append({'排名': rank, '海报': img_src, '片名': movie_title, '评分': star, '导演': director, '主演': actors, '上映时间': release_date, '上映地点': release_location, '类型': types, '热门短评': quote}, ignore_index=True)

最后,将DataFrame保存为Excel文件:

data.to_excel('douban_rank_250.xlsx', index=False)

完整代码如下所示:

import requests from bs4 import BeautifulSoup import pandas as pd

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

import requestsfrom bs4 import BeautifulSoup 获取指定url路径的页面def douban_rank250url headers = User-Agent Mozilla50 Windows NT 100; Win64; x64 AppleWebKit53736 KHTML like Gecko Chrome860424019

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

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