【爬虫1】爬虫和反爬虫介绍
@Author:Yakup
@Date:2021/5/10
@E-mail:spider1123@126.com
@Software:Visual Studio Code
1、爬虫简介
什么是爬虫?
- 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程
爬虫的价值:
- 实际应用
- 就业
爬虫究竟是合法还是违法的?
- 在法律中是不被禁止的
- 具有违法风险
- 善意爬虫 、 恶意爬虫
爬虫带来的风险可以体现在如下2方面:
- 爬虫干扰了被访问网站的正常运营
- 爬虫抓取了受到法律保护的特定类型的数据或信息
如何在使用编写爬虫的过程中避免进入局子的厄运呢?
- 时常优化自己的程序,避免干扰被访问网站的正常运行
- 在使用,传播爬取到的数据时,审查抓取到的内容,如果发现了涉及到用户隐私、商业机密等敏感内容需要及时停止爬取或传播
爬虫在使用场景中的分类
- 通用爬虫:
- 抓取系统重要组成部分,抓取的是一张页面数据。
- 聚焦爬虫:
- 是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容
- 增量式爬虫:
- 检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据
反爬机制
门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。
1)UA检测(User-Agent检测):
门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求为不正常的请求(爬虫),则服务器端就很有可能拒绝该次请求。
2)Headers反爬虫 :Cookie、Referer、User-Agent
3)IP限制 :网站根据IP地址访问频率进行反爬,短时间内进制IP访问
4)Ajax动态加载 :从url加载网页的源代码后,会在浏览器执行JavaScript程序,这些程序会加载更多内容
5)对查询参数加密
6)对响应内容做处理
7)js加密 时间戳 加密算法等等
反反爬策略
爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站中相关数据
1)UA伪装(User-Agent伪装):
让爬虫对应的请求载体身份标识伪装成某一款浏览器
2)抓取动态加载数据
从网页控制台–>Network分析获取ajax动态请求链接及请求方式、响应数据等
3)限制爬取的速度 --> time.sleep
4)使用代理ip隐藏身份
代理服务 - 快代理 / 讯代理 / 芝麻代理 / 蘑菇代理 / 云代理
洋葱路由 - 国内需要翻墙才能使用(不推荐)
yum -y install tor useradd admin -d /home/admin passwd admin chown -R admin:admin /home/admin chown -R admin:admin /var/run/tor tor
robots.txt协议
君子协议。规定了网站中哪些数据可以被爬虫,哪些数据不可以被爬虫。
查看网站的robots.txt协议,如
- www.taobao.com/robots.txt
http & https 协议
http协议
- 概念:就是服务器和客户端进行数据交互的一种形式。(超文本传输协议)
常用的请求头信息
- User-Agent:请求载体的身份标识(载体—>如浏览器)
- Connection:请求完毕后,是断开连接还是保持连接
常用的响应头信息
- Content-Type:服务器端响应回客户端的数据类型
https协议
- 表示安全的超文本传输协议
数据加密方式:
对称密钥加密
非对称密钥加密
证书密钥加密
【爬虫1】爬虫和反爬虫介绍相关推荐
- python反爬虫策略_突破反爬虫策略
### 1.什么是爬虫和反爬虫 * **爬虫**是使用任何技术手段批量获取网站信息的一种方式,**反爬虫**是使用任何技术手段阻止别人批量获取自己网站信息的一种方式: ### 2.User-Agent ...
- 爬虫中的那些反爬虫措施以及解决方法
在爬虫中遇到反爬虫真的是家常便饭了,这篇博客我想结合我自己的经验将遇到过的那些问题给出来,并给出一些解决方案. 1.UserAgent UserAgent的设置能使服务器能够识别客户使用的操作系 ...
- python爬虫(二)——反爬虫机制
一.headers反爬虫 1.U-A校验 最简单的反爬虫机制应该是U-A校验了.浏览器在发送请求的时候,会附带一部分浏览器及当前系统环境的参数给服务器,这部分数据放在HTTP请求的header部分. ...
- python爬虫脚本ie=utf-8_Python反爬虫伪装浏览器进行爬虫
对于爬虫中部分网站设置了请求次数过多后会封杀ip,现在模拟浏览器进行爬虫,也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作 简单的直接添加请求头,将浏览器的信息在请求数据时传入: 打开浏览器 ...
- WebDriver 识别反爬虫的原理和破解方法~
作者|志斌 来源|python笔记 有时候我们在爬取动态网页的时候,会借助渲染工具来进行爬取,这个"借助"实际上就是通过使用相应的浏览器驱动(即WebDriver)向浏览器发出命令 ...
- 如何设计一款暗度陈仓的反爬虫
本文授权转载自搜狐技术产品,特此感谢. 明修栈道.暗渡陈仓是一组出自<史记·淮阴侯列传>的成语,指将真实的意图隐藏在表面行动的背后,用明显的行动迷惑对方,使敌产生错觉,从而忽略我方的真实意 ...
- 关于反爬虫,看这一篇就够了
编者:本文来自携程酒店研发部研发经理崔广宇在第三期[携程技术微分享]上的分享,以下为整理的内容概要.墙裂建议点击视频回放,"现场"围观段子手攻城狮大崔,如何高智商&高情商地 ...
- 关于反爬虫,看这一篇就够了 1
编者:本文为携程酒店研发部研发经理崔广宇在携程技术微分享中的分享内容. [携程技术微分享]是携程技术中心推出的线上公开分享课程,每月1-2期,采用目前最火热的直播形式,邀请携程技术人,面向广大程序猿和 ...
- java 前端页面传过来的值怎么防止篡改_反爬虫,到底是怎么回事儿?
有位被爬虫摧残的读者留言问:「网站经常被外面的爬虫程序骚扰怎么办,有什么方法可以阻止爬虫吗? 」 这是个好问题,自从 Python 火了起来,编写爬虫程序的门口越来越低,爬取别人网站数据也越来越猖獗. ...
- python学习笔记分享(四十)网络爬虫(7)反爬虫问题,解决中文乱码,登陆和验证码处理
网络爬虫深度知识 一.反爬虫问题 (一)反爬虫原因 1.网络爬虫浪费了网站的流量 2.数据是私有资源 3.爬虫协议与原则 (二)反爬虫方式 (三)反反爬虫 1.原理 2.三种方法 二.解决中文乱码 ( ...
最新文章
- php 学习笔记 数组1
- Docker+Selenium Grid+Python搭建分布式测试环境
- jq选中单选框后文本框不可编辑_打开速度最快最强大的PDF免费工具,编辑+阅读功能一体...
- 题目1551:切蛋糕
- C# System.Runtime.InteropServices 相关学习总结
- 全球地区资料json 含中英文 经纬度_含乳饮料行业发展趋势及市场化程度分析(附报告目录)...
- LRU最少最近使用缓存策略
- 2018.09.07阿里巴巴笔试题
- uushare.com 增加了小组(群)功能
- EXCEL VLOOKUP函数的使用
- Java二维码的生成以及附加Logo
- emoji.php,简单的处理emoji的PHP类库
- HSQL调优的一些个人见解
- scree VS tmux
- 33、什么是 AIO?
- python数码时钟代码_micro:bit 编程模拟时钟表盘
- db_LINK详解东子
- 超详细的MySQL基本操作
- 关于STM32F4xx的GPIO
- 利用Python理解TTF矢量字体显示原理