爬虫系列 | 1、什么是爬虫,玩爬虫的正确姿势有哪些
一、爬虫简介
爬虫是一个帮助我们去寻找网络上小姐姐的照片或视频并且下载到本地的技术
Emmm… 似乎有点跑题了,百度百科上是这样解释爬虫的
是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
通俗的来讲,爬虫就是客户端发送请求(浏览器、手机等等),接收服务器的响应,获取目标数据的过程。包括不限于图片、数据、音频、视频等。然后进行持久化的一个过程(数据进行存储)
爬虫的应用在生活中息息相关,比如我们最常用的百度搜索、Google搜索;以及逢年过节用到的抢票软件;网购是用到的比价软件可以查到商品的历史价位;数据网站,比如公众号、抖音、小红书类似的数据分析网站;投票应用,通过一些途径进行刷票刷赞等
二、爬虫是否违法?
看到这是是否后背发凉,老老实实上班写个爬虫,经常加班不涨薪不说,怎么还有牢狱之灾呢?
事实上,因为爬虫被请去喝茶的例子确实不少
- 北京巧达科技涉及到简历数据业务所有员工被请去喝茶。公司办公室也被查封。
杨某研究AI人工智能10多年了。通过大量的模型他开发的识别验证码的技术越来越强。再配合撞库,获取了一大批各平台的账号和密码。然后将这些数据通过违法手段进行变现。有兴趣的可以网上搜一下,被称为全国首例利用人工智能犯zui的案件。
上海某科技公司CEO张某,联席CEO&产品负责人宋某,CTO候某,破解了北京某公司的防爬措施后,长期爬取北京数据库的数据。并再次被害单位损失技术服务费2万元。最终以非法获取计算机信息系统数据罪分别判处被告单位罚金20万元,判处被告人张某等四人有期徒刑九个月至一年不等的刑罚及3万元至5万元不等的罚金。
看了上面的案例是不是瑟瑟发抖呢?
事实上,爬虫在法律中是不被禁止的。但是如果如果利用爬虫获取数据确实是有一定的违法风险。这就好比我们生活中使用的刀,削水果切菜这都没事,但是如果用刀故意伤人这性质就不一样。
我们该如何规避爬虫的风险呢?
1、遵守Robots协议。
Robots协议又称为君子协议
,就好比过马路的时候,遇到红灯,我们都知道会停止。但是你如果非要闯红灯,谁也没法阻止你。
同样Robots协议就是标注了哪些内容你不能爬取,但是你非要爬取也没办法。所以被称为君子协议,全凭开发者的自觉性。
Robots通常是放在站点的根目录比如我需要查看淘宝的Robots协议,浏览器输入https://www.taobao.com/robots.txt
即可看到
内容如下:
User-agent: Baiduspider
Disallow: /User-agent: baiduspider
Disallow: /
可以看到淘宝规定了,百度的爬虫禁止(Disallow)在我这里爬取任何内容。
京东的Robots.txt协议 https://www.jd.com/robots.txt
User-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /
可以看到京东不想让EtaoSpider
、HuihuiSpider
、GwdangSpider
、WochachaSpider
这四个爬虫来爬取网站内容。对于其他的爬虫,不希望你爬取/?*,/pop/*.html ,/pinpai/*.html?*
这三个目录的内容
2、控制爬虫的频率
如果对你的爬虫频率毫无限制爬取某个网站,瞬间大量的请求访问服务器,势必增加服务器的压力,一旦服务器瘫痪了,那这种行为就跟网络攻击一个性质了。所以,你品,你细品…
《刑法》第二百八十六条还规定,违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,构成犯罪,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。而违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,也构成犯罪,依照前款的规定处罚。
3、隐私,敏感信息不要碰
我们平时逛的技术论坛的文章,或者招聘网站的一些公司信息。这些属于公开的内容,是可以放心的爬取。但是如果你通过某些途径,爬取到别人的隐私、敏感信息。这个是属于违法行为,更别提拿这些数据进行获利了。
《网络安全法》第四十四条 任何个人和组织不得窃取或者以其他非法方式获取个人信息。因此,如果爬虫在未经用户同意的情况下大量抓取用户的个人信息,则有可能构成非法收集个人信息的违法行为。
4、违背所有人意愿
知识付费的概念已经出来很久了,如果通过付费账号爬取付费的内容,导致内容提供方丧失了内容的控制权,从而让自己的利益收到了损失。
三、爬虫的矛与盾
爬虫的存在,所以很多网站会有一定的反爬措施。
就好比为了防止外人闯入自己家中每家每户都装了门锁,有的锁可能是PDD几块钱同款的锁,有的锁可能会几十块钱的,而有的则是装了防盗门。
常见的反爬措施有哪些?
- 请求头(Headers)/User-Agent限制 — PDD同款
这是最基础的反爬措施,比如浏览器中会从你的请求头中获取Rederer(上级链接),判断这次请求是浏览器请求还是机器请求。
User-Agent是用户访问网站时的浏览器标识。
以上两种方式,我们都可以通过包装请求头或者User-Agent对象进行破解
- IP限制、访问频率限制
通过判断某个IP或者访问的频率去判断是否是正常行为,可以通过构建代理池去进行爬取,或者每次请求之后都间隔一定的时间来进行爬取
- 登录或者验证码限制
有些数据必须是登录用户才可以进行爬取,或者在爬取的过程中会是不是的弹出一个验证码校验。魔高一尺道高一丈,可以通过模拟登录或者接入第三方打码平台进行验证码识别
- Ajax动态加载
有些网站为了避免爬虫,会加载完网页的源代码之后会在浏览器中执行JS程序,然后通过JS代码获取要展现的内容进行异步渲染。
对于这种反爬策略,最简单粗暴的方法就是使用Selenium。
JS加密
在进行请求时,携带了通过js算法生成的加密参数。我没记错的话,网易云音乐就是使用的这种反爬策略。遇到这种情况可以进行js代码调试,然后分析它的逻辑实现,然后让自己的爬虫按照同样的逻辑生成加密参数即可。
互相伤害型
有些网站不得不佩服,它检测到你是一个爬虫程序,不仅不禁止你的访问,还要装作不知道的样子,然后给你返回错误的数据。仿佛在对爬虫说
爬虫系列 | 1、什么是爬虫,玩爬虫的正确姿势有哪些相关推荐
- 经常玩电脑正确的坐姿_小芯机:玩电脑的正确姿势,你get了吗?
大家好,我是爱讲电脑的小芯机. 对于上班族来说,很多工作都要在电脑上完成,久坐在电脑前办公是常态.俗话说得好:生命在于运动!在电脑前坐久了,必然会影响健康,引发身体不适.那么,要如何减轻身体的负担.压 ...
- java爬虫系列(四)——动态网页爬虫升级版
项目地址 项目介绍 框架 结构 快速启动 修改配置文件 WebDriverPool.java App.java ComicDriver.java ComicContentService.java co ...
- 「Python爬虫系列讲解」三、正则表达式爬虫之牛刀小试
本专栏是以杨秀璋老师爬虫著作<Python网络数据爬取及分析「从入门到精通」>为主线.个人学习理解为主要内容,以学习笔记形式编写的. 本专栏不光是自己的一个学习分享,也希望能给您普及一些关 ...
- python网络爬虫系列(十)——chrome在爬虫中的使用
chrome浏览器使用方法介绍 学习目标 了解 新建隐身窗口的目的 了解 chrome中network的使用 了解 寻找登录接口的方法 1 新建隐身窗口 浏览器中直接打开网站,会自动带上之前网站时保存 ...
- flask-mail异步发送邮件_Python爬虫系列:用邮件来通知爬虫异常状况
如果Python爬虫发生了故障,希望第一时间来通知自己,这个时候可以通过email来向自己报告. 发送邮件的协议是SMTP,Python内置对SMTP支持,可以发送纯文本邮件,html邮件,以及带附件 ...
- 爬虫系列一:十天python爬虫基础学习实战第二天——python基础语法
第一天已经学会了基本的开发环境的安装,今天,可以开始学习如何写代码了,朋友们! 回顾: 1.爬虫能干什么? 2.python环境安装 3.pycharm安装(IDE) 4.简单打印输出hello wo ...
- 爬虫系列(2):暴力爬虫——基于selenium和xpath定位方法爬取某个话题下的微博内容
为什么这期要叫暴力爬虫呢?因为笔者认为基于selenium方法非常的简单粗暴!!理由有两点: 1.在selenium方法下,我们可以通过调用浏览器驱动来实现模拟鼠标点击.滑轮下滑以及输入文本等操作,就 ...
- 【Python爬虫系列教程 11-100】Python网络爬虫实战:最简单的Pandas 中的read_html一行代码爬取网页表格型数据,就可以爬取虎扑体育NBA球员信息
文章目录 爬取对象 分析 实现代码 爬取对象 虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. ...
- Python爬虫系列:腾讯课堂Scrapy爬虫
业务需求: 需要爬取腾讯课堂IT.互联网类别下的云计算大数据子类别下的所有课程数据: 课程名称.价格.购买人数.机构名称 1.编写item.py文件 定义要爬取的数据字段: import scrapy ...
- 【Python爬虫系列教程 18-100】Python网络爬虫实战:小姐姐手把手教你爬取并下载英雄联盟所有英雄皮肤高清大图
文章目录 前言 一.分析页面 二.分析第二个页面 三.代码 四.下载结果 前言 上次教你怎么爬取王者荣耀,今天小姐姐教你使用几十行代码下载英雄联盟所有皮肤,你看我下载的九尾妖狐.
最新文章
- 线程池ThreadPool知识碎片和使用经验速记
- 《90后程序员职场报告》:平均月薪近20K,每6个程序员就有1个是女性
- java netty post_API调用Netty长链接执行发送消息(在线数、用户列表)
- 资源放送丨数据安全:Oracle多场景下比特币勒索的揭密与恢复实战
- Linux权限z代表什么,linux用户与权限使用方法
- impala的substr从第几位截到最后一位_天赋不输乔丹,麦迪选秀为何只排第9?看前面几位,第1让老詹吃瘪...
- 【链表】删除链表的倒数第n个节点
- java单线程共享,「Java并发编程实战」之对象的共享
- 常见导航菜单实现方式
- vscode中文乱码问题及几种常见的解决方案
- PL/SQL中导出整个表、表结构、部分数据、以及导入整个表
- DNS污染的解决方法
- Oracle导出表结构(含表名、字段名、数据类型、是否为空、字段说明)至Excel(简单详细)sql语句的形式
- 2021-09-30 cannot locate default realm
- openfeign的快速使用
- MLAPI的升级之路
- CPU使用率终于正常了——记一次订餐统事故处理
- 中小企业营销兵法_小型企业创建营销计划的技巧
- 这本武林秘籍赶快收好
- hp台式计算机生产日期,如何查询hp笔记本生产日期
热门文章
- EM算法-数学原理及其证明
- 计算机视觉与深度学习公司
- Android凉了也要看的面试题,2020年5月美团Android面试真题(三面
- Windows平台C/C++实现对键盘或鼠标驱动设备的禁用、启动、卸载以及刷新设备管理列表功能
- nutch核心代码分析——crawl.injector总结
- matlab如何画动态圆弧,几何画板动态演示转弧成球的过程
- html页面统计在线人数,统计在线人数couter
- Surface reconstruction from unorganized points
- H3C交换机SSH配置(20200922)
- 解决邮件客户端QQ Mail及Thunderbird无法登入Outlook的问题