|
欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 【往期相关文章】爬取豆瓣电影排行榜Top250存储到Excel文件中爬取豆瓣电影排行榜TOP250存储到CSV文件中爬取知乎热榜Top50保存到Excel文件中爬取百度热搜排行榜Top50+可视化爬取斗鱼直播照片保存到本地目录爬取酷狗音乐Top500排行榜一、效果图: 以获取电影《肖申克的救赎》的评论为例,写一个爬取豆瓣影评保存到Excel文件中的爬虫程序 二、准备工作(1)、导入必要的模块: 代码首先导入了需要使用的模块:requests、lxml和csv。importrequestsfromlxmlimportetreeimportcsv 如果出现模块报错 进入控制台输入:建议使用国内镜像源pipinstall模块名称-ihttps://mirrors.aliyun.com/pypi/simple 我大致罗列了以下几种国内镜像源:清华大学https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple/豆瓣https://pypi.douban.com/simple/百度云https://mirror.baidu.com/pypi/simple/中科大https://pypi.mirrors.ustc.edu.cn/simple/华为云https://mirrors.huaweicloud.com/repository/pypi/simple/腾讯云https://mirrors.cloud.tencent.com/pypi/simple/三、代码详情importrequestsfrombs4importBeautifulSoupfromopenpyxlimportWorkbook首先,我们导入了三个必要的Python模块:requests、BeautifulSoup和openpyxl。requests用于发送HTTP请求,BeautifulSoup用于解析HTML页面,openpyxl用于生成Excel文件并将影评数据写入到Excel文件中。 defget_reviews(movie_id):url=f'https://movie.douban.com/subject/{movie_id}/comments?status=P'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.3'}response=requests.get(url,headers=headers)soup=BeautifulSoup(response.text,'html.parser')reviews=soup.find_all('span',class_='short')return[review.get_text()forreviewinreviews]'运行运行 定义一个名为`get_reviews()`的函数,它接受一个参数movie_id,该参数表示电影在豆瓣网站上的唯一标识符。该函数使用f-string构建了影评页面的URL,并设置了请求头`headers`来伪装成浏览器访问方式。然后使用requests库发送GET请求获取页面内容。接着使用BeautifulSoup库解析HTML页面,并使用CSS选择器定位到影评所在的元素。最后,将影评内容提取出来并返回一个包含影评文本的列表。 defsave_to_excel(reviews):workbook=Workbook()sheet=workbook.activesheet['A1']='影评'fori,reviewinenumerate(reviews,start=2):sheet[f'A{i}']=reviewworkbook.save('reviews.xlsx')'运行运行 定义一个名为`save_to_excel()`的函数,它接受一个参数`reviews`,表示要保存的影评列表。函数使用openpyxl库创建一个新的Excel工作簿,并获取工作簿的活动工作表。然后,将影评列表中的每个影评逐行写入Excel工作表的列A中。最后,使用save()方法将工作簿保存为名为"reviews.xlsx"的Excel文件。 if__name__=='__main__':movie_id='1292052'#肖申克的救赎的电影IDreviews=get_reviews(movie_id)save_to_excel(reviews)print('影评已保存到reviews.xlsx文件中。') 主程序代码,首先指定了要获取影评的电影ID(在豆瓣电影网址中可以找到)。然后,调用`get_reviews()`函数获取影评列表,再将该列表传递给`save_to_excel()`函数进行保存。最后,打印提示信息,表示影评已成功保存到Excel文件中。部分代码:importrequestsfrombs4importBeautifulSoupfromopenpyxlimportWorkbookdefget_reviews(movie_id):url=f'https://movie.douban.com/subject/{movie_id}/comments?status=P'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.3'}response=requests.get(url,headers=headers)soup=BeautifulSoup(response.text,'html.parser')reviews=soup.find_all('span',class_='short')return[review.get_text()forreviewinreviews]完整代码: 资料获取,更多粉丝福利,关注下方公众号获取,直接搜索“英杰代码编程” 回复"python影评",“豆瓣影评”,“爬取豆瓣影评”均可获取完整代码
|
|