张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件,👉戳此立抢👈

12行简单的Python代码,初窥爬虫的秘境

马哥Linux运维 2018-06-07 09:17 次阅读

往往不少童鞋写论文苦于数据获取艰难,辗转走上爬虫之路;

许多分析师做舆情监控或者竞品分析的时候,也常常使用到爬虫。

今天,本文将带领小伙伴们通过12行简单的Python代码,初窥爬虫的秘境。

爬虫目标

本文采用requests + Xpath,爬取豆瓣电影《黑豹》部分短评内容。

运行以上的爬虫脚本,我们得以见证奇迹

爬虫结果与原网页内容的对比,完全一致

通过tqdm模块实现了良好的交互

工具准备

chROMe浏览器(分析HTTP请求、抓包)

安装Python 3及相关模块(requests、lxml、pandas、time、random、tqdm)requests:用来简单请求数据lxml:比Beautiful Soup更快更强的解析库pandas:数据处理神器time:设置爬虫访问间隔防止被抓random:随机数生成工具,配合time使用tqdm:交互好工具,显示程序运行进度

基本步骤

网络请求分析

网页内容解析

数据读取存储

涉及知识点

爬虫协议

http请求分析

requests请求

Xpath语法

Python基础语法

Pandas数据处理

爬虫协议

爬虫协议即网站根目录之下的robots.txt文件,用来告知爬虫者哪些可以拿哪些不能偷,其中Crawl-delay告知了网站期望的被访问的间隔。(为了对方服务器端同学的饭碗,文明拿数据,本文将爬虫访问间隔设置为6-9秒的随机数)

豆瓣网站的爬虫协议

HTTP请求分析

使用chrome浏览器访问《黑豹》短评页面https://movie.douban.com/subject/6390825/comments?sort=new_score&status=P,按下F12,进入network面板进行网络请求的分析,通过刷新网页重新获得请求,借助chrome浏览器对请求进行筛选、分析,找到那个Ta

豆瓣短评页面请求分析

通过请求分析,我们找到了目标url为'https://movie.douban.com/subject/6390825/comments?start=0&liMIt=20&sort=new_score&status=P&percent_type=',并且每次翻页,参数start将往上增加20(通过多次翻页尝试,我们发现第11页以后需要登录才能查看,且登录状态也仅展示前500条短评。作为简单demo,本文仅对前11页内容进行爬取)

requests请求

通过requests模块发送一个get请求,用content方法获取byte型数据,并以utf-8重新编码;然后添加一个交互,判断是否成功获取到资源(状态码为200),输出获取状态

请求详情分析

(除了content,还有text方法,其返回unicode字符集,直接使用text方法遇到中文的话容易出现乱码)

Xpath语法解析

获取到数据之后,需要对网页内容进行解析,常用的工具有正则表达式、Beautiful Soup、Xpath等等;其中Xpath又快又方便。此处我们通过Xpath解析资源获取到了前220条短评的用户名、短评分数、短评内容等数据。(可借助chrome的强大功能直接复制Xpath,Xpath语法学习http://www.runoob.com/xpath/xpath-tutorial.html)

数据处理

获取到数据之后,我们通过list构造dictionary,然后通过dictionary构造datafRame,并通过pandas模块将数据输出为csv文件

结语与彩蛋

本例通过requests+Xpath的方案,成功爬取了电影《黑豹》的部分豆瓣短评数据,为文本分析或其他数据挖掘工作打好了数据地基。本文作为demo,仅展示了简单的爬虫流程,更多彩蛋如请求头、请求体信息获取、cookie、模拟登录、分布式爬虫等请关注后期文章更新哟。

原文标题:12行Python暴力爬《黑豹》豆瓣短评

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

零基础Python入门教程二

随着新技术的不断推进,在未来无论你要进入网页开发、数据分析、机器学习、人工智能还是无人车等领域,Python 都是必不可
发表于 04-09 00:00 0次 阅读
零基础Python入门教程二

零基础Python入门教程二

随着新技术的不断推进,在未来无论你要进入网页开发、数据分析、机器学习、人工智能还是无人车等领域,Python 都是必不可
发表于 04-09 00:00 0次 阅读
零基础Python入门教程二

成为Python高手必须懂的爬虫原理

互联网是由一个个站点和网络设备组成的大网,我们通过浏览器访问站点,站点把HTML、JS、CSS代码返....
的头像 嵌入式资讯精选 发表于 05-20 17:29 54次 阅读
成为Python高手必须懂的爬虫原理

Fisher精确检验的步骤python实现

Fisher 精确检验 与卡方检验
发表于 05-20 12:14 2次 阅读
Fisher精确检验的步骤python实现

盘点最常用的十大Visual Studio Code扩展组件

ESLint组件会使用本地ESLint和配置规则来查找JavaScript代码中的常见模式问题,以便....
的头像 电子发烧友网工程师 发表于 05-19 11:01 270次 阅读
盘点最常用的十大Visual Studio Code扩展组件

9种经典排序算法的可视化

Python提供了list类型,很方便可以表示C++中的数组。标准安装的Python中用列表(lis....
的头像 电子发烧友网工程师 发表于 05-19 10:59 221次 阅读
9种经典排序算法的可视化

为什么要把数学建模与当今火热的人工智能放在一起?

按照传统定义,数学模型是对于一个现实对象,为了一个特定目的(实际问题),做出必要的简化假设(模型假设....
的头像 电子发烧友网工程师 发表于 05-19 10:22 238次 阅读
为什么要把数学建模与当今火热的人工智能放在一起?

有趣的mathAI项目,手写拍照自动能解高数题还不快试试?

总的来说,对于数学公式的识别,主要是将识别出的独立的字符组织成计算机能够理解的数学公式(这里的数学公....
的头像 电子发烧友网工程师 发表于 05-19 10:16 248次 阅读
有趣的mathAI项目,手写拍照自动能解高数题还不快试试?

程序员除了要会写代码,还要懂得职场的15大定律和7大原则

随着摩尔定律(Moore’s Law)的放缓,以及单个处理器速度的加速放缓,并行化是提高性能的关键。....
的头像 新智元 发表于 05-19 09:59 212次 阅读
程序员除了要会写代码,还要懂得职场的15大定律和7大原则

初学者应该如何更快的学好Python?

时光在不经意中流逝,转眼间我已经毕业十余载。一边是时间的年轮不会停止等待,一边是科技的发展已经不能单....
的头像 电子发烧友网工程师 发表于 05-18 11:40 277次 阅读
初学者应该如何更快的学好Python?

python接口文件使用说明

首先,python接口文件在安装好的darknet目录下的python文件夹,打开就可以看到
发表于 05-18 11:30 84次 阅读
python接口文件使用说明

盘点LabVIEW新手5大容易犯的错误

许多LabVIEW新手并不完全了解“数据流”执行背后的概念,而这些概念却是LabVIEW编程的基础。....
的头像 电子发烧友网 发表于 05-17 17:43 268次 阅读
盘点LabVIEW新手5大容易犯的错误

matplotlib绘图中编写的辅助函数总结

matplotlib做图中常用的辅助函数
发表于 05-17 17:12 27次 阅读
matplotlib绘图中编写的辅助函数总结

基于Python实现一只小爬虫爬取拉勾网职位信息的方法

通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息...
发表于 05-17 06:54 16次 阅读
基于Python实现一只小爬虫爬取拉勾网职位信息的方法

基于Python实现一只小爬虫爬取拉勾网职位信息的方法

通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息...
发表于 05-17 06:54 16次 阅读
基于Python实现一只小爬虫爬取拉勾网职位信息的方法

请问下面代码每行的末尾都有个\是什么?

请问下面代码每行的末尾都有个(\),,(\)是什么东东呢?? #define  IntervalTimems(time)    ...
发表于 05-17 00:03 16次 阅读
请问下面代码每行的末尾都有个\是什么?

小猿圈python学习之Python列表list合并的4种方法

Python作为目前市面上最常用的编程语言之一,赢得了我们很多技术人员的喜爱,同时越来越多的人纷纷开始学习py
发表于 05-16 21:37 32次 阅读
小猿圈python学习之Python列表list合并的4种方法

从零开始学3D着色器编程

Shader,是运行在GPU上的程序,中文称为着色器。它的主要用途是对三维物体进行着色处理,对光与影....
的头像 人工智能爱好者社区 发表于 05-16 14:31 142次 阅读
从零开始学3D着色器编程

Python | 群聊太多?三步教你用Python自动监听转发群消息

带大家一起来看看如何用Python开发一个可以监听关注人群聊的机器人。
的头像 嵌入式资讯精选 发表于 05-16 14:27 236次 阅读
Python | 群聊太多?三步教你用Python自动监听转发群消息

requests的用法有哪些

requests的基本用法
发表于 05-16 11:52 16次 阅读
requests的用法有哪些

仅会一点点python就能自己搭建一个神经网络!

我们将在本实验中使用的 Tensor Processing Unit(TPU)硬件加速器。Googl....
的头像 新智元 发表于 05-15 08:53 188次 阅读
仅会一点点python就能自己搭建一个神经网络!

小猿圈 分享 Javascript技巧(下)

上篇文章小猿圈给大家分享了3个关于Javascript的小技巧,这节课继续给大家分享一些关于Javascrip
发表于 05-14 21:33 19次 阅读
小猿圈 分享 Javascript技巧(下)

基于BoostPython的Python CC++混合编程实现步骤

利用BoostPython实现Python CC++混合编程
发表于 05-14 16:03 34次 阅读
基于BoostPython的Python CC++混合编程实现步骤

通过Python就能读懂机器学习

具体来说有四个方面的介绍,包括机器学习的定义、机器学习的起源,以及进化反向、机器学习的分类和类别、最....
的头像 电子发烧友网工程师 发表于 05-14 14:31 156次 阅读
通过Python就能读懂机器学习

基于Python实现交互式数据可视化的工具

现在大部分的数据可视化研究都是通过D3进行的。遗憾的是,我只有短短8周跟学生相处的时间,所以我只能专....
的头像 电子发烧友网工程师 发表于 05-14 11:47 184次 阅读
基于Python实现交互式数据可视化的工具

关于距离计算的总结

距离计算在自然语言处理中得到广泛使用,不同距离计算方式应用与不同的环境,其中也产生了很多不同的效果。
的头像 电子发烧友网工程师 发表于 05-14 09:52 145次 阅读
关于距离计算的总结

汇总Python标准库实现的大部分算法

ProjectEuler 是一个在线习题集,它与LeetCode等习题集不同的地方在于,该习题集主要....
的头像 电子发烧友网工程师 发表于 05-14 09:08 137次 阅读
汇总Python标准库实现的大部分算法

Python深度学习PDF电子书免费下载

本书由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Cholle....
发表于 05-14 08:00 67次 阅读
Python深度学习PDF电子书免费下载

TIOBE公布了2019年5月编程语言排行榜

在这种趋势下,Python已经成为最大赢家,最可能的原因是统计编程正从大学发展到工业,而Python....
的头像 人工智能爱好者社区 发表于 05-13 16:52 919次 阅读
TIOBE公布了2019年5月编程语言排行榜

三星多个项目源代码泄露 或被注入恶意代码

据外媒报道,迪拜网络安全公司SpiderSilk的安全研究员莫萨布·侯赛因(Mossab Husse....
的头像 电子发烧友网工程师 发表于 05-13 16:48 434次 阅读
三星多个项目源代码泄露 或被注入恶意代码

Github发布重大功能性更新GitHub Package Registry

在处理一个依赖于软件包的项目时,重要的是要信任、理解软件包的代码,并与构建项目的社区建立联系。在社区....
的头像 新智元 发表于 05-13 08:57 276次 阅读
Github发布重大功能性更新GitHub Package Registry

程序员学习Julia编程语言的五个理由

我们以Python为例。如果你使用Python,会发现其中存在用C语言编写的代码。 Python允许....
的头像 新智元 发表于 05-13 08:51 185次 阅读
程序员学习Julia编程语言的五个理由

深度学习入门教程之基于Python的理论与实现PDF电子书免费下载

对于非AI方向的技术人员,本书将大大降低入门深度学习的门槛;对于在校大学生、研究生,本书不失为学习深....
发表于 05-13 08:00 34次 阅读
深度学习入门教程之基于Python的理论与实现PDF电子书免费下载

Python最常见的面试题解答

Python作为人工智能知识的基础知识,加上有许多公司都在招python方面的程序员,那么小编在这里....
的头像 电子发烧友网 发表于 05-12 10:26 333次 阅读
Python最常见的面试题解答

谷歌新推出的Python在线编辑器Colaboratory详细介绍

Colaboratory 是一个谷歌提供的Jupyter notebook环境,不需要进行任何设置就....
的头像 电子发烧友网工程师 发表于 05-12 10:19 381次 阅读
谷歌新推出的Python在线编辑器Colaboratory详细介绍

为什么现在那么多人想学Python?

最近,网上流传一组《人工智能实验教材》的图片,照片火起来的原因是教材是为幼儿园的小朋友们设计的!
的头像 电子发烧友网工程师 发表于 05-12 09:30 339次 阅读
为什么现在那么多人想学Python?

一份用Python代码实现算法的资源帖,涵盖从入门到高级的各类算法

在这个项目中并不是对所有内容都进行了详细介绍,有部分主题的代码非常丰富。为了帮助大家高效地利用这一学....
的头像 电子发烧友网工程师 发表于 05-11 10:30 225次 阅读
一份用Python代码实现算法的资源帖,涵盖从入门到高级的各类算法

还记得被Java统治的时代吗?最近一份数据榜单悄悄来了!

对于Python的崛起TIOBE排行榜也给予了回应:由于全球流行度在过去一年中涨幅最高(3.62%)....
的头像 电子发烧友网工程师 发表于 05-11 09:58 386次 阅读
还记得被Java统治的时代吗?最近一份数据榜单悄悄来了!

还在用Matplotlib? 又一可视化神器Altair登场

在接触 Altair 之前,我们常常持有一种的怀疑态度:这些可视化工具的包装器真的好用吗?通常来讲,....
的头像 电子发烧友网工程师 发表于 05-11 09:43 312次 阅读
还在用Matplotlib? 又一可视化神器Altair登场

英伟达的StyleGAN仅需小样本就可以做到图像到图像的转换!

为了训练FUNIT,我们使用来自一组对象类(例如各种动物物种的图像)中的图像,称为源类(source....
的头像 新智元 发表于 05-11 09:13 425次 阅读
英伟达的StyleGAN仅需小样本就可以做到图像到图像的转换!

labview调用python

labview2018调用python时整个python文件运行吗
发表于 05-10 17:36 208次 阅读
labview调用python

HanLP的使用方法

HanLP 是由一系列模型与算法组成的工具包,目标是普及自然语言处理在生产环境中的应用。HanLP ....
的头像 人工智能头条 发表于 05-10 17:03 180次 阅读
 HanLP的使用方法

【第5期】每周精选之人工智能资料汇总

为了方便大家查找技术资料,从今天开始,每个星期都会有一个社区资料总贴,同时也会选取一周的每天看电路和直播,让大家可以结合...
发表于 05-10 16:18 354次 阅读
【第5期】每周精选之人工智能资料汇总

Python教程之Python学习笔记第二版PDF电子书免费下载

Python是一种半编译半解释型运行环境。首先,它会在模块“载入”时将源码编译成字节码(ByteCo....
发表于 05-10 08:00 46次 阅读
Python教程之Python学习笔记第二版PDF电子书免费下载

Android的UI界面设计的详细代码资料免费下载

本文档的主要内容详细介绍的是Android的UI界面设计的详细代码资料免费下载。
发表于 05-10 08:00 41次 阅读
Android的UI界面设计的详细代码资料免费下载

G代码的详细资料讲解以及实例说明

G代码是数控程序中的指令。一般都称为G指令。使用G代码可以实现快速定位、逆圆插补、顺圆插补、中间点圆....
发表于 05-09 17:15 31次 阅读
G代码的详细资料讲解以及实例说明

小猿圈python学习-编程语言介绍与分类

什么是编程?为什么要编程?编程 是个动词,编程==写代码,写代码为了什么? 为了让计算机干你想要干的事情,比如,马化腾想跟别人...
发表于 05-09 14:56 46次 阅读
小猿圈python学习-编程语言介绍与分类

用这个插件,帮你把 Web VS Code 变为 C/C++ IDE

用两周开发一个插件,能提升更多人的开发效率,这事还是挺划算的。
的头像 声网Agora 发表于 05-09 14:46 186次 阅读
用这个插件,帮你把 Web VS Code 变为 C/C++  IDE

如何用Python实现所有算法和一些神经网络模型

鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也可以视作选择排序的一种变形),涟漪排序,....
的头像 电子发烧友网工程师 发表于 05-08 14:52 267次 阅读
如何用Python实现所有算法和一些神经网络模型

TIOBE编程语言社区最新发布了2019年5月排行榜

在本月 TIOBE 编程语言排行榜中,我们还可以清晰地看到苹果支持的两种语言 Objective-C....
的头像 嵌入式资讯精选 发表于 05-07 17:24 1662次 阅读
TIOBE编程语言社区最新发布了2019年5月排行榜

Python爬虫绕过登录的小技巧

我们每次打开浏览器做相应操作时,对应的缓存和 cookie 会保存到浏览器默认的路径下,我们先查看个....
的头像 马哥Linux运维 发表于 05-07 16:08 284次 阅读
Python爬虫绕过登录的小技巧

Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅

工作量估算:将开发任务量化,包括原型、Logo设计、UI设计、前端开发等,尽量把每个工作分解到最小任....
的头像 新智元 发表于 05-07 09:04 579次 阅读
Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅

如何使用Python通过函数式编程完成excel中的数据处理及分析工作

我们在创建数据表的时候在 price 字段中故意设置了几个 NA 值。对于空值的处理方式有很多种,可....
的头像 电子发烧友网工程师 发表于 05-06 15:07 280次 阅读
如何使用Python通过函数式编程完成excel中的数据处理及分析工作

MySQL中update修改数据与原数据相同是否会再次执行

本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在My....
的头像 电子发烧友网工程师 发表于 05-06 10:45 249次 阅读
MySQL中update修改数据与原数据相同是否会再次执行

GitHub告急!黑客攻击勒索的惊魂记

据GitLab安全总监Kathy Wang回应道,“我们根据Stefan Gabos昨天提交的赎金票....
的头像 电子发烧友网工程师 发表于 05-06 09:43 473次 阅读
GitHub告急!黑客攻击勒索的惊魂记

Facebook正式宣布了PyTorch v1.1版本即将到来

Google AI Platform Notebooks:这是一个基于谷歌云平台的新的托管 Jupy....
的头像 人工智能 发表于 05-05 17:49 667次 阅读
Facebook正式宣布了PyTorch v1.1版本即将到来

python的web部署方式大全!

Python Web服务器网关接口(Python Web Server Gateway Interf....
的头像 马哥Linux运维 发表于 05-05 17:20 267次 阅读
python的web部署方式大全!

四位技术大拿相聚西雅图,共同探讨编程语言的设计与未来发展

Anders Hejlsberg表示,他遵循了他所接触过的所有编程语言的共同原则,即“做某件事情的方....
的头像 Linux爱好者 发表于 05-05 17:18 390次 阅读
四位技术大拿相聚西雅图,共同探讨编程语言的设计与未来发展

为什么那么多人想学Python

最近,网上流传一组《人工智能实验教材》的图片,照片火起来的原因是教材是为幼儿园的小朋友们设计的!
的头像 电子发烧友网工程师 发表于 05-05 17:13 1920次 阅读
为什么那么多人想学Python