入门爬虫示例-爬取豆瓣短评

2023-12-12 20:18

本文主要是介绍入门爬虫示例-爬取豆瓣短评,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

群里有个小妹妹,让我帮她写的代码,好像是作业什么的。花了几分钟看了一下,随便写写,分享给有需要的童鞋,我用python 3 写的,实现的功能就是:爬取豆瓣短评,然后将数据写入本地的excel表格,数据大概有,电影名称,评分,评论人数,短评四项,稍微修改下也可以爬取其他数据。

这属于入门学习的爬虫,博客里的代码,复制到本地,直接就能跑,有些包需要自己安装一下,安装教程自行百度。代码如下:

#-*- coding:UTF-8 -*-
#2018/12/24
#made in baiye
#爬取豆瓣短评,然后将数据写入本地的excel表格,数据大概有,电影名称,评分,评论人数,短评四项。import requests
from bs4 import BeautifulSoup
import re
import time
import xlrd
import xlwt
from xlutils.copy import copy#获取页面源码
def getHTMLText(url,k):try:if(k==0):kw={}else: kw={'start':k,'filter':''}r = requests.get(url,params=kw,headers={'User-Agent': 'Mozilla/4.0'})r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:print("Failed!")#通过BeautifulSoup查找所需要的数据
def getData(html,n,files):soup = BeautifulSoup(html, "html.parser")movieList=soup.find('ol',attrs={'class':'grid_view'})#找到第一个class属性值为grid_view的ol标签for movieLi in movieList.find_all('li'):#找到所有li标签n += 1data = []#声明一个list,将得到的数据添加进list#得到电影名字movieHd=movieLi.find('div',attrs={'class':'hd'})#找到第一个class属性值为hd的div标签movieName=movieHd.find('span',attrs={'class':'title'}).getText()#找到第一个class属性值为title的span标签#也可使用.string方法data.append(movieName)#得到电影的评分movieScore=movieLi.find('span',attrs={'class':'rating_num'}).getText()data.append(movieScore)#得到电影的评价人数movieEval=movieLi.find('div',attrs={'class':'star'})movieEvalNum=re.findall(r'\d+',str(movieEval))[-1]data.append(movieEvalNum)# 得到电影的短评movieQuote = movieLi.find('span', attrs={'class': 'inq'})if(movieQuote):data.append(movieQuote.getText())else:data.append("无")#将数据循环写入excel文件c = 0for r in data:rexcel = xlrd.open_workbook(files)  # 用wlrd提供的方法读取一个excel文件excel = copy(rexcel)  # 用xlutils提供的copy方法将xlrd的对象转化为xlwt的对象table = excel.get_sheet(0)  # 用xlwt对象的方法获得要操作的sheetif len(r) > 32767:continuetable.write(n, c, r)  # xlwt对象的写方法,参数分别是行、列、值c += 1excel.save(files)
if __name__ == '__main__':k=0n = 0files = 'top100.xls'#保存的位置,默认是当前执行目录下。workbook = xlwt.Workbook()sheet = workbook.add_sheet("sheet1")sheet.write(0,0,"电影名称")sheet.write(0,1,"评分")sheet.write(0,2,"评论人数")sheet.write(0,3,"短评")workbook.save(files)#当前目录下创建test.xls文件basicUrl='https://movie.douban.com/top250'while k<=75:html=getHTMLText(basicUrl,k)time.sleep(2)k+=25#每页25条,循环一次加25getData(html,n,files)n += 25#用于控制excel表的行数

爬取部分结果展示:

有问题可以随时提出,欢迎加群交流。

 

这篇关于入门爬虫示例-爬取豆瓣短评的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485809

相关文章

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Redis延迟队列的实现示例

《Redis延迟队列的实现示例》Redis延迟队列是一种使用Redis实现的消息队列,本文主要介绍了Redis延迟队列的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、什么是 Redis 延迟队列二、实现原理三、Java 代码示例四、注意事项五、使用 Redi

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编

Python使用Colorama库美化终端输出的操作示例

《Python使用Colorama库美化终端输出的操作示例》在开发命令行工具或调试程序时,我们可能会希望通过颜色来区分重要信息,比如警告、错误、提示等,而Colorama是一个简单易用的Python库... 目录python Colorama 库详解:终端输出美化的神器1. Colorama 是什么?2.

Go Gorm 示例详解

《GoGorm示例详解》Gorm是一款高性能的GolangORM库,便于开发人员提高效率,本文介绍了Gorm的基本概念、数据库连接、基本操作(创建表、新增记录、查询记录、修改记录、删除记录)等,本... 目录1. 概念2. 数据库连接2.1 安装依赖2.2 连接数据库3. 数据库基本操作3.1 创建表(表关

Python视频剪辑合并操作的实现示例

《Python视频剪辑合并操作的实现示例》很多人在创作视频时都需要进行剪辑,本文主要介绍了Python视频剪辑合并操作的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录介绍安装FFmpegWindowsMACOS安装MoviePy剪切视频合并视频转换视频结论介绍