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

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

相关文章

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT