只会爬虫不会反爬虫?动图详解利用 User-Agent 进行反爬虫的原理和绕过方法!_user-agent案例

而爬虫却不是这样的,爬虫生来就是为了获取网络上的内容并将其转化为数据。这是两种截然不同的方式,你也可以理解为通过编写代码来大规模的、自动化的获取内容数据,这是一种骚操作。

回到正题,为什么会选择 User-Agent 这个参数呢?

因为编程语言都有默认的标识,在发起网络请求的时候,这个标识在你毫不知情的情况下,作为请求头参数中的 User-Agent 值一并发送到服务器。比如 Python 语言通过代码发起网络请求时, User-Agent 的值中就包含 Python 。同样的,Java 和 PHP 这些语言也都有默认的标识。

反爬虫的黑名单策略

既然知道编程语言的这个特点,再结合实际的需求,那么反爬虫的思路就出来了。这是一中黑名单策略,只要出现在黑名单中的请求,都视为爬虫,对于此类请求可以不予处理或者返回相应的错误提示。

为什么用黑名单策略不用白名单策略?

现实生活中,浏览器类型繁多(火狐浏览器、谷歌浏览器、360 浏览器、傲游浏览器、欧普拉浏览器、世界之窗浏览器、QQ 浏览器等),

想要将所有的浏览器品牌、类型以及对应的标识收集并放到名单中,那是不实际的,假如漏掉了哪一种,那么对网站来说是一种损失。

再者说来,很多的服务并不仅仅开放给浏览器,有些时候这些服务以 API 的形式向应用程序提供服务,比如安卓软件的后端 API ,为安卓软件程序提供数据服务,而软件本身只承担界面和结构的任务,而数据则从后端 API 获取。这个时候,发起的请求中, User-Agent 就会变成 Android 。

以上就是不能使用白名单策略的原因。

而黑名单在于简单,当你希望屏蔽来自于 Python 代码的请求或者来自于 Java 代码的请求时,只需要将其加入黑名单中即可。

通过 Nginx 服务日志来查看请求头中的 User-Agent

Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,使用 Nginx 企业有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx 的安装与启动

通常可以使用系统本身的安装工具(Centos 的 yum、Debian 系的 apt-get 以及 MacOS 的 brew)安装 Nginx,以 linux 系统为例,在终端中输入:

sudo apt-get install nginx

接下来根据提示选择,即可完成 Nginx 的安装。

接着在终端通过命令:

sudo systemctl start nginx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值