本节我们先讲一下网络爬虫的概念,再讲一下网络爬虫的分类,期间会插入我个人的一些见解。
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
对于我们来说,爬虫需要我们自己写,可以下载的我们眼里最有价值的数据。
通常我们会把收集到的数据进行数据分析:
数据表明:用户购买最多的商品是 100-200 RMB,最理想的定位应是 200 元以内却特别高端的物品。
数据表明:男性最后选择的总是外表好看的,这可能伤了您的心。
获取数据背后的结论(需要一些心理学知识才能推出来),还真须有大量随机的数据;而且爬取的数据要尽量随机、大规模,这样能够排除一切主观的干扰因素。
如果爬虫技术特别 NB,也可以直接去销售数据:
1) http://chinadatatrading.com/ 是销售数据的平台之一。
800KB 的数据(就是用硬盘下载也能1秒搞定),打 9 折后,180,0000 元。
2) 靠谱一点的,还可以爬虫工程师的工资:
如果您喜欢编程这真是太好啦,不是所有的爱好都有一个副作用是给您赚钱的。
就拿赚钱来说,可以分为赚信息差、赚技术差、赚认知差。
网赚这类基本上都是信息不对称,所以先从赚信息差入手,辅以赚认知差,长期储备赚技术差。
举个例子,美国现任总统特朗普喜欢发推特(推特同中国的微博,特朗普号称是“推特治国”),推文大概在小学水平:
您会发现这句话中除了密歇根这个名词稍微陌生,剩下的内容没有看不懂的。
美国大多数政客也是如此,这可不是政客越来越没文化,越来越随意 —— 恰恰相反,政客演讲现在是越来越不敢随意,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 | 爬虫框架(代码直接套就好了,上面的都需要自己一个个实现) |
为了让小白了解收集到数据之后能干什么,爬虫课时将会涉及到: