一、为什么要做爬虫?
我相信大家肯定会异口同声的回答:肯定是为了挣钱呗,要不然学这个干嘛。
但是有喜欢计算机的很喜欢专研各种领域的知识点。尤其是我们这个时代就是属于数据的时代,当我们需要网络上的很多数据的时候,这个时候我们不能一个一个的复制下来,这时候就会用到爬虫。爬虫的主要作用就是爬取您所需要的数据,到您的指定存储的地址。

二、爬虫是什么呢?
(一)爬虫的定义
**很官方的含义:**网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
**简单的来说:**就是用事先写好的程序或代码,在网络上抓取所需要的的数据。这样的程序就叫做网络爬虫。写这样的程序的人就是爬虫工程师。
(二)爬虫的分类
- 通用爬虫:
抓取系统重要组成部分。抓取的是一整张页面数据。 - 聚焦爬虫:
是"面向特定主题需求"的一种网络爬虫程序 - 增量式爬虫
检查网站中的数据是否更新,只会爬取网上上更新的数据 - 区别:
聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的
网页信息。通用爬虫是将页面上的所有信息都爬取下来,而我们今后要学习的,就是聚焦爬虫。
爬与反爬
我们要知道,服务器那边的人又不傻,不会白白让你把他们辛辛苦苦整理出来的东西全都给爬走喽,所以说有爬的人,就有反爬的人。
这是一场没有硝烟的战争。
更像是套娃……
比如说你爬了人家,人家知道你是怎么爬的就针对你爬的方式想出了办法反爬,你又根据别人反爬的方式想出了办法继续爬,别人又根据你继续爬的方式想出了方法反爬,你又根据别人新的反爬的方式想出了新的办法继续爬……
道高一尺魔高一丈,所以不要怕!我们无论遇到什么反爬,微笑着面对他,奥利给!
大多时候都是爬的一方占优势,毕竟服务器如果分太多精力对付你,那就得不偿失了,而你用了那么多方法去一层一层爬出来,效率也会大打折扣,属于两边都可以接受吧。

robots.txt协议
君子协议。规定网站中的那些数据可以被爬虫爬取,那些不可以被爬虫爬取。
爬虫工程师的进阶之路
初级爬虫工程师
1、web 前端的知识:HTML、CSS、JavaScript、DOM、DHTML、Ajax、jQuery、json
等;
2、正则表达式,能提取正常一般网页中想要的信息,比如某些特殊的文字、链接信息、
知道什么是懒惰,什么是贪婪型的正则;
3、会使用 XPath 等获取一些 DOM 结构中的节点信息;
4、知道什么是深度优先和广度优先的抓取算法及实践中的使用规则;
5、能分析简单网站的结构,会使用 urllib 或 requests 库进行简单的数据抓取。
中级爬虫工程师:
1、了解什么是 HASH,会简单地使用 MD5,SHA1 等算法对数据进行 HASH 一遍存储;
2、熟悉 HTTP 和 HTTPS 协议的基础知识,了解 GET 和 POST 方法,了解 HTTP 头中
的信息,包括返回状态码、编码、user-agent、cookie 和 session 等;
3、能设置 user-agent 进行数据爬取,设置代理等;
4、知道什么是 Request,什么是 response,会使用 Fiddler 等工具抓取及分析简单地网
络数据包;对于动态爬虫,要学会分析 ajax 请求,模拟制造 post 数据包请求,抓取客户端
session 等信息,对于一些简单的网站,能够通过模拟数据包进行自动登录;
5、对于一些难搞定的网站学会使用 phantomjs+selenium 抓取一些动态网页信息;
6、并发下载,通过并行下载加速数据爬取;多线程的使用。
高级爬虫工程师:
1、能进行网页的验证码破解;
2、能破解网站的数据加密;
3、会使用常用的数据库进行数据存储、查询。比如 MongoDB 和 Redis。学习如何通过
缓存避免重复下载的问题;
4、能使用一些开源框架 Scrapy,Scrapy-Redis 等分布式爬虫,能部署掌控分布式爬虫
进行大规模数据爬取。
爬虫究竟是合法还是违法?
- 在法律中是不被禁止的
- 具有违法风险
- 有恶意爬虫和善意爬虫,全看自己。距离悬崖只有一步之遥。
目前就给大家分享到这里啦!在以后我会找个时间段给大家分享一些这个反爬都有那些。如果有需要的大家可以给我留言,有需要改正的,请大家多多包涵。 好! 下课!!!

本文介绍了爬虫相关知识。爬虫可爬取所需数据,有通用、聚焦、增量式等分类。爬与反爬是一场博弈,还有 robots.txt 协议。同时阐述了爬虫工程师的进阶之路,包括初、中、高级所需技能,最后提到爬虫在法律上不被禁止但有违法风险。
64万+

被折叠的 条评论
为什么被折叠?



