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写一个简单的程序

程序设计是用精确的语言告诉计算机该做什么,要精确到最细节处。计算机只会做很简单的事情,只能刻板地执行....
发表于 01-16 11:43 5次 阅读
python教程之如何使用python写一个简单的程序

北大开源了一个中文分词工具包,名为——PKUSeg

多领域分词:不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。....
的头像 电子发烧友网工程师 发表于 01-16 10:29 78次 阅读
北大开源了一个中文分词工具包,名为——PKUSeg

又一代码清库的惨案发生了,不过这次要背锅是AI

神经网络算法的这一波操作,让人不禁想起郭德纲的一个相声段子,“我心善,见不得穷人,于是把自己目之所及....
的头像 电子发烧友网工程师 发表于 01-16 09:12 83次 阅读
又一代码清库的惨案发生了,不过这次要背锅是AI

IIC总线初始化基本驱动参考程序应用代码免费下载

本文档的主要内容详细介绍的是IIC总线初始化基本驱动参考程序应用代码免费下载。程序功能:为IIC总线....
发表于 01-16 08:00 9次 阅读
IIC总线初始化基本驱动参考程序应用代码免费下载

Python基础教程之Python快速入门课件资料免费下载

本文档的主要内容详细介绍的是Python基础教程之Python快速入门课件资料免费下载主要内容包括了....
发表于 01-15 17:17 13次 阅读
Python基础教程之Python快速入门课件资料免费下载

Python再一次赢得了“年度编程语言”的称号!

在 2018 年期间,号称集 Python、C、R、Ruby 等语言所长的动态编程语言 Julia ....
的头像 电子发烧友网工程师 发表于 01-15 10:24 415次 阅读
Python再一次赢得了“年度编程语言”的称号!

代码是如何自动智能生成的?自动编程有实际价值吗?

虽说目前还只是社区体验版,但其也是经过淘宝前端团队内部近 2 年的打磨才推出的全新产品。按照阿里官方....
的头像 电子发烧友网工程师 发表于 01-15 09:45 148次 阅读
代码是如何自动智能生成的?自动编程有实际价值吗?

你知道13种编程语言的名称和来历吗

可能程序员们都认为编写代码时给变量取名是件烦人的事,不过他们还需要给另外一个东西取名,那就是新的编程....
发表于 01-14 17:20 30次 阅读
你知道13种编程语言的名称和来历吗

转行数据分析的一些经验和学习方法

如果你已经了解了Python编程的基础用法想要继续深入学习Pyhon,那么博主推荐你去看:廖学峰Py....
的头像 人工智能爱好者社区 发表于 01-14 15:25 111次 阅读
转行数据分析的一些经验和学习方法

USB设备驱动程序代码免费下载

本文档的主要内容详细介绍的是USB设备驱动程序代码免费下载。
发表于 01-14 08:00 14次 阅读
USB设备驱动程序代码免费下载

使用Python编程时的要注意那10个事项

在Python里,一个表达式中的名字在它被赋值之前是没法使用的。这是有意而为的:这样能避免一些输入失....
的头像 玩转单片机 发表于 01-13 09:05 192次 阅读
使用Python编程时的要注意那10个事项

Python在开发实时嵌入式系统中的作用

在过去的几年里,Python已经成为一种热门的程序语言。以著名的Monty Python喜剧小组命名,该语言是面向对象和解释。该属性导...
发表于 01-11 18:22 72次 阅读
Python在开发实时嵌入式系统中的作用

如何写一个会讲笑话的Python程序

笑话从哪里来?自己写肯定是不现实的。在这个“云”的时代,各种云都有,自然是不缺开放API的。下面写一....
的头像 马哥Linux运维 发表于 01-11 16:47 349次 阅读
如何写一个会讲笑话的Python程序

Python图像处理库Pillow入门教程和代码资料免费下载

Pillow 是Python 里的图像处理库(PIL:Python Image Library),提....
发表于 01-11 16:20 36次 阅读
Python图像处理库Pillow入门教程和代码资料免费下载

Python成为2018年度编程语言,理由如下

2018 年,Python 语言上升了 3.62% ,其次是 Visual Basic .NET(+....
的头像 电子发烧友网工程师 发表于 01-10 15:32 259次 阅读
Python成为2018年度编程语言,理由如下

API-Shop-OCR-营业执照识别API接口Python调用示例代码说明

本文档的主要内容详细介绍的是API-Shop-OCR-营业执照识别API接口Python调用示例代码....
发表于 01-10 11:48 28次 阅读
API-Shop-OCR-营业执照识别API接口Python调用示例代码说明

K3Cloud的python开发实例资料说明

本文档的主要内容详细介绍的是K3Cloud的python开发实例程序资料免费下载。
发表于 01-10 11:48 29次 阅读
K3Cloud的python开发实例资料说明

虚拟币API接口的Python调用示例代码资料免费下载

虚拟币大全 涵盖比特币、以太坊等热门虚拟货币与最新发行的虚拟货币,包括币种名称、市值、24小时交易....
发表于 01-10 10:37 27次 阅读
虚拟币API接口的Python调用示例代码资料免费下载

GitHub宣布无限制的免费为普通用户提供私有仓库服务

尽管私有仓库以后可以免费创建,但服务还是有限的,免费私有仓库最多只能添加三个协同操作者,而且免费版服....
的头像 电子发烧友网工程师 发表于 01-10 10:32 186次 阅读
GitHub宣布无限制的免费为普通用户提供私有仓库服务

众望所归,Github推出无限容量免费版私人存储库服务

现在,有许多开发人员希望使用私有资源库来申请职位、开发子项目、或者在公开发布之前私下尝试开发的一些东....
的头像 新智元 发表于 01-10 09:45 212次 阅读
众望所归,Github推出无限容量免费版私人存储库服务

实用C语言编程(第三版)PDF中文版免费下载

用C语言进行编程不仅仅是在程序中使用正确的句法,编程的风格以及程序的调试在编写程序的过程中也占有相当....
发表于 01-10 09:41 44次 阅读
实用C语言编程(第三版)PDF中文版免费下载

如何用robots.txt快速抓取网站

在我抓取网站遇到瓶颈,想剑走偏锋去解决时,常常会先去看下该网站的robots.txt文件,有时会给你....
的头像 电子发烧友网工程师 发表于 01-10 09:08 153次 阅读
如何用robots.txt快速抓取网站

面对人工智能这个大潮 码农应该作何反应呢

去年以来,相信很多码农,包括我本人在内,每天不下十次看到听到“人工智能”。新闻在报、科技媒体也都被它....
的头像 电子发烧友网工程师 发表于 01-10 09:00 1065次 阅读
面对人工智能这个大潮 码农应该作何反应呢

使用labview调用python语言,创建一个随机数生成小程序

1.labview只是调用功能,主要功能是python代码。   python具有强大的功能,可以弥补labview的短板。 2.labview需要安...
发表于 01-09 20:48 97次 阅读
使用labview调用python语言,创建一个随机数生成小程序

【PYNQ-Z2试用体验】1.适用项目,计划方案以及目标----写在开发板到手之前。

感谢论坛,很荣幸让我有机会试用 Pynq-z2 这块板子。 申请的原因是之前的Pynq-z1坏掉了,找了硬件的朋友去修。 之前已经在z1...
发表于 01-09 16:04 131次 阅读
【PYNQ-Z2试用体验】1.适用项目,计划方案以及目标----写在开发板到手之前。

Agilent 34401A读数存储器问题

嗨,大家好!! 我需要使用Agilent 34401A通过测量电阻连续测量(0.01秒),同时直流电压源施加0到20伏的电压斜坡,Im使用G...
发表于 01-09 15:11 20次 阅读
Agilent 34401A读数存储器问题

MicroPython技术及应用定义

    MicroPython极精简高效的实现了Python3语言,包含Python标准库的一小部分,在单片机和受限环境中运行。 &n...
发表于 01-09 14:43 145次 阅读
MicroPython技术及应用定义

常用贴片电阻阻值速查表的详细资料免费下载

现在的电子产品正在向小而精的方向发展,很多大规模类电子产品都使用贴片电阻来减小产品的整体体积。我们作....
发表于 01-09 08:00 55次 阅读
常用贴片电阻阻值速查表的详细资料免费下载

python调用HanLP

1.首先安装jpype 首先各种坑,jdk和python 版本位数必须一致,我用的是JPype1-py3 版本号0.5.5.2 、1.6jdk和Python3.5,win7...
发表于 01-08 16:26 78次 阅读
python调用HanLP

如何在GitHub上更新Fork以及PullRequest给源项目

这里有个小技巧:在默认状态下,会是Base源项目,Head我自己的Fork项目;这样选择任何一个时,....
的头像 电子发烧友网工程师 发表于 01-08 09:38 190次 阅读
如何在GitHub上更新Fork以及PullRequest给源项目

Python惨遭开发者嫌弃,8个理由说明Python很糟糕

”绝大多数编程语言都有某种标识来表明作用域——即函数何时开始何时结束,动作包含在一个条件语句中,变量....
的头像 电子发烧友网工程师 发表于 01-08 09:05 339次 阅读
Python惨遭开发者嫌弃,8个理由说明Python很糟糕

python如何配置虚拟环境?

python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的....
发表于 01-07 17:12 90次 阅读
python如何配置虚拟环境?

python虚拟环境迁移4大关键步骤

执行 pip freeze --all 》 requirements.txt 命 令 将安装包版本信....
发表于 01-07 17:00 74次 阅读
python虚拟环境迁移4大关键步骤

一位十年嵌入式工程师的经验之谈:会导致难点bug的各种问题

有若干条件的if语句,if (a 或 b) ,特别是当有链接的时候, if (x) else if ....
的头像 EDA365 发表于 01-07 16:14 277次 阅读
一位十年嵌入式工程师的经验之谈:会导致难点bug的各种问题

python的各种实现有何优劣

当谈到Python时,一般指的是CPython。但Python实际上是一门语言规范,只是定义了Pyt....
的头像 马哥Linux运维 发表于 01-07 15:44 279次 阅读
python的各种实现有何优劣

MicroPython教程之TPYBoard开发板加速度传感器(萝卜教育)

1、加速度传感器的使用     开发板上有一个能够检测角度和运动状态的加速度传感器(小封装小模块?)。X ,Y,...
发表于 01-07 14:37 106次 阅读
MicroPython教程之TPYBoard开发板加速度传感器(萝卜教育)

【PYNQ-Z2试用体验】玩转PYNQ系列:二、板卡上电与开发环境配置

第一部分:板卡上电 一、需要的软硬件: 硬件: PYNQ-Z2 开发板以太网线Micro USB 数据线电源(7~15V)8G以上M...
发表于 01-07 11:34 227次 阅读
【PYNQ-Z2试用体验】玩转PYNQ系列:二、板卡上电与开发环境配置

能不能用文本处理的方法,得到《三国演义》中的人物社交网络再进行分析呢?

对这个问题,我们可以用网络中的排序算法解决。PageRank就是这样的一个典型方法,它本来是搜索引擎....
的头像 电子发烧友网工程师 发表于 01-06 10:13 643次 阅读
能不能用文本处理的方法,得到《三国演义》中的人物社交网络再进行分析呢?

一年时间从零基础到成为研究科学家的历程

如果你是这个领域的新手,并且正在其中的某个部分(或全部)挣扎,请记住,没有人能轻松地做到。总有一些事....
的头像 新智元 发表于 01-06 10:07 491次 阅读
一年时间从零基础到成为研究科学家的历程

2018年的7大最好的Python库

AdaNet是一个轻量级的、可扩展的TensorFlow AutoML框架,用于使用AdaNet算法....
的头像 新智元 发表于 01-06 09:44 548次 阅读
2018年的7大最好的Python库

Python夺大满贯!三大编程语言榜即将全部“失守”!

有互联网创业者说:2019年可能会是过去十年里最差的一年但却是未来十年里最好的一年,真的是这样吗?“
的头像 电子发烧友网工程师 发表于 01-05 11:02 721次 阅读
Python夺大满贯!三大编程语言榜即将全部“失守”!

python基础教程之变量如何命名变量命名规范的资料说明

python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。
发表于 01-04 17:51 46次 阅读
python基础教程之变量如何命名变量命名规范的资料说明

python基础教程之如何进行静态方法和类方法详细笔记说明

本文档的主要内容详细介绍的是python基础教程之如何进行静态方法和类方法详细笔记说明资料免费下载。
发表于 01-04 17:01 37次 阅读
python基础教程之如何进行静态方法和类方法详细笔记说明

pyhanlp 共性分析与短语提取内容详解

简介 HanLP中的词语提取是基于互信息与信息熵。想要计算互信息与信息熵有限要做的是 文本分词进行共性分析。在作者的原文中...
发表于 01-04 11:04 526次 阅读
pyhanlp 共性分析与短语提取内容详解

用示波器快速捕获异常的三种方法

万事开头难!当你想用示波器来分析问题时,你一定有想过,我要如何才能把问题抓下来?当然,只有抓下来之后....
的头像 ZLG致远电子 发表于 01-04 09:26 389次 阅读
用示波器快速捕获异常的三种方法

利用支持MicroPython的TPYBoard开发板自制PM2.5检测仪

    秋冬季节,雾霾天气的持续,让人们对空气质量的关注程度提升。而近期人们对于空气质量的关注总也绕不开一个词——...
发表于 01-04 08:52 385次 阅读
利用支持MicroPython的TPYBoard开发板自制PM2.5检测仪

数据处理有9大编程语言详细资料介绍

有关大数据的话题一直很火热。伴随着信息的爆炸式增长,大数据渗透到了各行各业,广泛应用于公司中,同时也....
发表于 01-03 11:46 51次 阅读
数据处理有9大编程语言详细资料介绍

如何使用Python编程一个石头剪刀布游戏的小程序

本作业是通过python的基础语句,运用条件嵌套判断以及随机数的生成,实现了与电脑进行石头剪刀布游戏....
发表于 01-03 09:42 52次 阅读
如何使用Python编程一个石头剪刀布游戏的小程序

用Python爬了爬自己的微信朋友

看来我大部分的朋友都是在广东的(不是废话吗),其中广东的朋友大部分集中在广、深、珠,第二名是在奥克兰....
的头像 机器人大讲堂 发表于 01-02 16:59 409次 阅读
用Python爬了爬自己的微信朋友

爬虫是如何实现数据的获取爬虫程序如何实现

进入大数据时代,爬虫技术越来越重要,因为它是获取数据的一个重要手段,是大数据和云计算的基础。那么,爬....
发表于 01-02 16:30 91次 阅读
爬虫是如何实现数据的获取爬虫程序如何实现

为什么选用python进行科学计算

脚本语言已经为很多科学计算器的构建提供了很多强有力的工具,因为他们提供了其他解释型语言的接口。和很多....
发表于 01-02 14:40 47次 阅读
为什么选用python进行科学计算

最红编程语言Python的入门学习方法资料概述

最近由于人工智能的大热,Python成为网红编程语言。其就业方向和就业前景是非常大的。所以一些想要转....
发表于 01-02 14:40 56次 阅读
最红编程语言Python的入门学习方法资料概述

教大家如何用Python抢火车票!

但是,所有的乡愁和感伤,最好的解药就是一张火车票。每当万事俱备,总是只欠东风,我依然是被一张 5mm....
的头像 电子发烧友网工程师 发表于 01-02 10:35 718次 阅读
教大家如何用Python抢火车票!

Python官方竟然给出了一种编码规范PEP 8

autopep8 能够将 Python 代码自动格式化为 PEP 8 风格,它使用 pycodest....
的头像 电子发烧友网工程师 发表于 01-02 10:24 360次 阅读
Python官方竟然给出了一种编码规范PEP 8