1.爬取第一页的所有影评

首先我们用百度搜索《后来的我们》影评,记录下此时的网址,如下:
https://movie.douban.com/subject/26683723/comments?start=0&limit=20&sort=new_score&status=P

右键当前页面,查看元素,我们可以发现在查看器中,所有的评论都是<p>来显示的,虽然后面的无关文字也有<p>来显示,但我们可以通过限制条件来只选出我们想要的评论。


接下来我们来选择网络,随便点击一个文件,在右边出现一个属性框,我们拉到最下面,记录下我们所用网页的User-Agent。

完成了所有准备工作,我们开始进行写代码。

为了完成我们的爬虫,我们需要导入两个库,一个是requests库,它用于向网页发送请求,具体用法详见linkhttps://www.cnblogs.com/xinz-study/p/9294452.html,另一个是bs4库中的BeautifulSoup类,用于获取网页的源码,具体用法详见linkhttps://www.jianshu.com/p/26a3632796dd。

完整代码如下:

# 需要调用的requests库和 bs4库中的BeautifulSoup工具
import requests
from bs4 import BeautifulSoupnum = 0  # 定义条数的初始值# 定义一个变量url,为需要爬取数据我网页网址
url = 'https://movie.douban.com/subject/26683723/comments?start=0&limit=20&sort=new_score&status=P'# 获取这个网页的源代码,存放在req中,{}中为不同浏览器的不同User-Agent属性,怎么获取前面已经介绍
req = requests.get(url,{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'})# 生成一个Beautifulsoup对象,用以后边的查找工作
soup = BeautifulSoup(req.text, 'html.parser')# 找到所有p标签中的内容并存放在xml这样一个类似于数组队列的对象中
xml = soup.find_all('p', class_='')# 利用循环将xml[]中存放的每一条打印出来
for i in range(20):  # 表示从0到xml的len()长度msg = xml[i].get_text() # 只获取纯文本if not msg is None:num += 1print('第', num, '条', msg)

查看一下输出结果:

2.爬取多页的评论

为了爬取多页的评论,我们只需改变每一次的网址即可,我们可以观察每一页的评论网址:

  • 第一页:https://movie.douban.com/subject/26683723/comments?start=0&limit=20&sort=new_score&status=P
  • 第二页:https://movie.douban.com/subject/26683723/comments?start=20&limit=20&sort=new_score&status=P
  • 第三页:https://movie.douban.com/subject/26683723/comments?start=40&limit=20&sort=new_score&status=P

可以发现,每次的变化就是start=后面数字的变化,而且每页都在前一页的基础上加20,由此,我们便可利用循环语句实现多页的爬取,代码如下:

# 需要调用的requests库和 bs4库中的BeautifulSoup工具
import requests
from bs4 import BeautifulSoupnum = 0  # 定义条数的初始值
page_num = int(input("请输入你先查看评论的页数")) # 想要查看的页数# 定义一个变量url,为需要爬取数据我网页网址
for page in range(page_num):url = 'https://movie.douban.com/subject/26683723/comments?start=' + str(20 * page) + '&limit=20&sort=new_score&status=P'# 获取这个网页的源代码,存放在req中,{}中为不同浏览器的不同User-Agent属性,怎么获取前面已经介绍req = requests.get(url,{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'})# 生成一个Beautifulsoup对象,用以后边的查找工作soup = BeautifulSoup(req.text, 'html.parser')# 找到所有p标签中的内容并存放在xml这样一个类似于数组队列的对象中xml = soup.find_all('p', class_='')# 利用循环将xml[]中存放的每一条打印出来s = len(xml)for i in range(20):  # 表示从0到xml的len()长度msg = xml[i].get_text() # 只获取纯文本if not msg is None:num += 1print('第', num, '条', msg)

查看输出结果:
我们输入的页数为5,可以看到有100条评论。

3.优化

很多网站都会有反爬机制,当短时间内同一个IP多次对服务器进行访问时,服务器会暂时中断对该IP的服务,这样我们就不能得到想要的结果,所以一个办法就是增加延时,下边是加上延时之后代码:

# 需要调用的requests库和 bs4库中的BeautifulSoup工具
import requests
from bs4 import BeautifulSoup
import time
num = 0  # 定义条数的初始值
page_num = int(input("请输入你先查看评论的页数")) # 想要查看的页数# 定义一个变量url,为需要爬取数据我网页网址
for page in range(page_num):url = 'https://movie.douban.com/subject/26683723/comments?start=' + str(20 * page) + '&limit=20&sort=new_score&status=P'# 获取这个网页的源代码,存放在req中,{}中为不同浏览器的不同User-Agent属性,怎么获取前面已经介绍req = requests.get(url,{'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'})# 生成一个Beautifulsoup对象,用以后边的查找工作soup = BeautifulSoup(req.text, 'html.parser')# 找到所有p标签中的内容并存放在xml这样一个类似于数组队列的对象中xml = soup.find_all('p', class_='')# 利用循环将xml[]中存放的每一条打印出来s = len(xml)for i in range(20):  # 表示从0到xml的len()长度msg = xml[i].get_text() # 只获取纯文本if not msg is None:num += 1print('第', num, '条', msg)time.sleep(5) # 每隔5秒进行一次访问

一个简单的python网路爬虫示例——爬取《后来的我们》影评相关推荐

  1. python——图片爬虫:爬取爱女神网站(www.znzhi.net)上的妹子图 进阶篇

    在上一篇博客中:python--图片爬虫:爬取爱女神网站(www.znzhi.net)上的妹子图 基础篇 我讲解了图片爬虫的基本步骤,并实现了爬虫代码 在本篇中,我将带领大家对基础篇中的代码进行改善, ...

  2. 【Python】爬虫实例——爬取新闻并实现语音播报

    [Python]爬虫实例--爬取新闻并实现语音播报 本文涉及: 1.爬虫请求链接 2.文字转语音(TTS语音合成技术) 安装: pip install pyttsx3 pip install requ ...

  3. Python Scrapy爬虫框架爬取51job职位信息并保存至数据库

    Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...

  4. python爬猫眼电影影评,Python系列爬虫之爬取并简单分析猫眼电影影评

    前言 今天给大家介绍利用Python爬取并简单分析猫眼电影影评.让我们愉快地开始吧~ 开发工具 Python版本:3.6.4 相关模块: requests模块: pyecharts模块: jieba模 ...

  5. 利用python的爬虫技术爬取百度贴吧的帖子

    在爬取糗事百科的段子后,我又在知乎上找了一个爬取百度贴吧帖子的实例,为了巩固提升已掌握的爬虫知识,于是我打算自己也做一个. 实现目标:1,爬取楼主所发的帖子 2,显示所爬去的楼层以及帖子题目 3,将爬 ...

  6. Mac电脑安装Mangodb数据库,实现一个简单的Python页面爬虫

    Mangodb百度百科 使用Mac电脑有很多的软件没有Mac版本导致软件无法安装,但是有的软件有mac版本,安装方式也比Windows平台复杂.比如现在我们想在Mac电脑安装mangodb数据库,首先 ...

  7. Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表

    hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...

  8. 【爬虫实战】10应用Python网络爬虫——定向爬取百度百科文字

    python百度百科爬虫 网页源代码分析 编程实现 小结 网页源代码分析 首先找一下需要爬取的正文: 对应的源代码有两个地方: 上图往后翻会发现省略号,所以下面这张图才是我们需要爬取的部分: 编程实现 ...

  9. Python网络爬虫之爬取微博热搜

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

最新文章

  1. BZOJ3993: [SDOI2015]星际战争
  2. Jenkins设置用户权限
  3. [云炬python3玩转机器学习笔记] 3-5Numpy数组和矩阵的基本操作
  4. struts+hibernate+oracle+easyui实现lazyout组件的简单案例——DeptDao层代码
  5. mix2s 升级android p,小米推送小米MIX2S 安卓P稳定版更新 这两个隐藏升级你发现了吗?...
  6. android 应用区高度,Android创建显示区高度可以调整的ScrollView
  7. 职业生涯设计的10点忠告
  8. 在游戏设备上砸钱 其实小姐姐们更疯狂!
  9. bigdata learning unit two--Spark environment setting
  10. windows 虚拟磁盘的软链接_如何在Windows的操作系统下创建VHD虚拟磁盘
  11. vtkDataObject 与vtkImageData
  12. TortoiseSVN的设置
  13. Ubuntu下用snap7与西门子通信
  14. CDA二级建模分析师考试相关
  15. 怎么把PDF文件转换成电子书?教你如何转换
  16. 操作系统( 第二章)知识点总结
  17. figma安装包_Figma软件下载|UI界面设计软件(Figma)下载 v3.0.4 官方版 - 比克尔下载...
  18. 团队作业10——事后诸葛亮分析
  19. [W ParallelNative.cpp:212] Warning: Cannot set number of intraop threads after parallel work h
  20. DTOJ 4745. 进制转换

热门文章

  1. 获得UAA access token
  2. 盲盒扭蛋机小程序-系统简介
  3. Hyperchain 超块链创始人史兴国对谈李刚锐:巨头企业和创业团队谁将率先到达Web3彼岸?
  4. Java jdbc连接数据库 图书管理系统实现添加图书功能
  5. 二分查找法(函数binary_search)
  6. 思科ei ccie认证体系最新内容下一代编址IPV6技术最全面的基础详解 从零到精通必读
  7. 无法安装mysql怎么办,安装mysql出现的错误以及最终的解决方法
  8. vue+flv播放flv视频、m3u8视频,谷歌浏览器视频不自动播放怎么办
  9. 0-01--python3 优雅地使用 configparser加载配置内容-无默认配置
  10. JAVA判断sheet有效行数_Java 利用POI 读取指定excel的真实行数