首页 > 编程笔记 > Python笔记

网络爬虫是什么?

本节我们先讲一下网络爬虫的概念,再讲一下网络爬虫的分类,期间会插入我个人的一些见解。

网络爬虫是什么?

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

对于我们来说,爬虫需要我们自己写,可以下载的我们眼里最有价值的数据。

通常我们会把收集到的数据进行数据分析:
获取数据背后的结论(需要一些心理学知识才能推出来),还真须有大量随机的数据;而且爬取的数据要尽量随机、大规模,这样能够排除一切主观的干扰因素。

如果爬虫技术特别 NB,也可以直接去销售数据:

1) http://chinadatatrading.com/ 是销售数据的平台之一。


800KB 的数据(就是用硬盘下载也能1秒搞定),打 9 折后,180,0000 元。


2) 靠谱一点的,还可以爬虫工程师的工资:


如果您喜欢编程这真是太好啦,不是所有的爱好都有一个副作用是给您赚钱的。

关于赚钱

就拿赚钱来说,可以分为赚信息差、赚技术差、赚认知差。
网赚这类基本上都是信息不对称,所以先从赚信息差入手,辅以赚认知差,长期储备赚技术差。

举个例子,美国现任总统特朗普喜欢发推特(推特同中国的微博,特朗普号称是“推特治国”),推文大概在小学水平:

Donald J. Trump:Today we are going to win the great state of MICHIGAN and we are going to WIN back the White House! Thank you MI!....

您会发现这句话中除了密歇根这个名词稍微陌生,剩下的内容没有看不懂的。

美国大多数政客也是如此,这可不是政客越来越没文化,越来越随意 —— 恰恰相反,政客演讲现在是越来越不敢随意,TA们的用词和节奏都是经过精心计算的 —— 只有这样,TA们才能更好地争取选民。

文章节奏,如格律、对仗、八股都是追求节奏的一种形式,西方的节奏又叫 “分形”,节奏形式同现在的流行音乐。

节奏是最简单也是最重要的信息技术。能让人听起来特别“顺”,有一种愉悦感,而后我们会把这种愉悦感投射到这句话的内容上去,我们会因此觉得这句话更有道理。

譬如,不要问你的国家能为你做些什么,要问你能为你的国家做些什么,这句话的节奏是 ABBA。

这就是一个信息差呢,国内就有人实时翻译(爬虫技术)了特朗普的推文,微博粉丝暴涨 500 万。

如果您还能根据局势分析特朗普说的话,还可以继续赚技术差:


有没有感受到,特朗普是说服力大师 ??

特朗普对群众说的话,就好像是出自一个模版(说服力法则之一):先同步再领导。

是先取得了感情同步,紧接着就领导读者往前走一步,占领道德制高点。

特朗普这个级别的说服力:是你们不但要喜欢我,而且还要不喜欢我的对手。

推特治国名不虚传,如果再把自己的这份分析分享出去,那不就是继续赚认知差吗~

爬虫的分类

我们所熟悉的搜索引擎,如谷歌、百度、搜狗、必应、360,TA们的核心技术就是爬虫,属于通用型爬虫。

我们学习的是聚焦型爬虫,聚焦型爬虫是啥,很厉害嘛?

聚焦型爬虫与通用型爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

我们还是先科普一下,爬虫分类以及各自的优势。

类型\相对特征 相对优势 相对劣势
通用爬虫(百度) 能快速搜索到想要的内容 90% 的内容是用户不需要的
聚焦爬虫 爬取的内容十分精准 爬取的数据很固定

下面的内容,完全不需要看懂,第一节主要是介绍一下。我们的爬虫课时的学习路径分为俩阶段:

通用型爬虫

通用型爬虫也是我正在学习的内容,和聚焦型爬虫只是方向不一样而已。除非是去拥有搜索引擎的公司,很少有人会学通用型爬虫吧。

以百度为例,您在搜索的时候仔细看,会发现每个搜索结果下面都有一个百度快照。


点击百度快照,就会发现网址的开头有 [baidu] 这个词,也就是说这个网页属于百度。


这些网页都被通用爬虫保存在本地的服务器里,通过浏览器我们能查询到所有被保存的网页。

那百度又是如何,下载到那么多的网页呢 ?

爬虫的原理是把每个网页看成图(离散数学、常用的数据结构之一)的一个节点,让网页和网页之间的超链接看做弧,整个互联网就是一个大大的有向图。


通用型爬虫也是一个程序,可以从任何一个网友出发,用图的遍历算法,自动的访问每一个网友并存储在服务器里。

考虑的方面:
这些,也会穿插在爬虫课时之间,能帮助您加深了解。

如果想缩短收录的时间,可以主动提交我们的网址给通用型爬虫(如百度的链接提交)。

聚焦型爬虫

通用型爬虫是搜索引擎的原身,也是一个程序;而聚焦型爬虫也是一个程序,主要是代替浏览器的程序根据我们设定的规则批量提取相关数据,而不需要我们去手动提取(通用型爬虫做不到这一点)。

注意了,以后我们说爬虫,默认是聚焦型爬虫。

爬虫的基本步骤 :
爬虫涉及的 Python 模块:
模块 功能
request 获取网页信息,文本、音频、图片都可以的。
Json 解析 XHR 数据,也可以把字符串转为字典/列表
bs4 解析网页源代码,提取需要的数据
re 功能同 bs4,不过功能更强且大多数编程语言都支持
csv 存储数据(文件形式)
selenium 浏览器自动化
openpyxl 存储数据(excel文件形式)
gevent 异步爬虫,建立爬虫军队加速爬取数据
SMTP 电子邮件 发送
wxpy 微信消息 处理
pyautogui 鼠标键盘 自动化
MongoDB 数据库
Scrapy 爬虫框架(代码直接套就好了,上面的都需要自己一个个实现)

为了让小白了解收集到数据之后能干什么,爬虫课时将会涉及到:

所有教程

优秀文章