爬虫系列 --- 反爬机制和破解方法汇总和加密手段

反爬机制和破解方法汇总

一什么是爬虫和反爬虫?
爬虫:使用任何技术手段,批量获取网站信息的一种方式。
反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。
二 Headers and referer 反爬机制
*headers进行反爬是最常见的反爬虫策略。
*还有一些网站会对 Referer (上级链接)进行检测(机器行为不太可能通过链接跳转实现)
从而实现爬虫。

headers 知识补充***
host:提供了主机名及端口号
Referer 提供给服务器客户端从那个页面链接过来的信息(有些网站会据此来反爬)
Origin:Origin字段里只包含是谁发起的请求,并没有其他信息.(仅存于post请求)
User agent: 发送请求的应用程序名(一些网站会根据UA访问的频率间隔时间进行反爬)
proxies: 代理,一些网站会根据ip访问的频率次数等选择封ip.
cookie: 特定的标记信息,一般可以直接复制,对于一些变化的可以选择构造.
(session=requests.session()自动把cookie信息存入response对象中)

Accept首部为客户端提供了一种将其喜好和能力告知服务器的方式
首部            描述

Accept          告诉服务器能够发送哪些媒体类型

Accept-Charset      告诉服务器能够发送哪些字符集

Accept-Encoding     告诉服务器能够发送哪些编码方式(最常见的是utf-8)

Accept-Language     告诉服务器能够发送哪些语言

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用伪装user-agent方法可以模拟多种浏览器类型和版本,减少被识别为爬虫的可能性,从而实现反爬。在Java中,可以通过设置Http请求头中的User-Agent字段来伪装user-agent。以下是Java中使用伪装user-agent方法进行反爬的代码示例: ```java import java.util.Random; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; public class UserAgentSpider { public static void main(String[] args) throws Exception { Random random = new Random(); String[] userAgentList = {"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko"}; String userAgent = userAgentList[random.nextInt(userAgentList.length)]; HttpGet request = new HttpGet("https://www.example.com"); request.setHeader("User-Agent", userAgent); CloseableHttpClient httpClient = HttpClientBuilder.create().build(); httpClient.execute(request); } } ``` 以上代码中,使用了Java中的HttpClient库来发送Http请求,首先定义了一个随机的User-Agent列表,然后随机选择一个User-Agent,设置到HttpGet请求的头部中,最后使用HttpClient发送请求。 需要注意的是,虽然伪装user-agent可以减少被识别为爬虫的可能性,但并不能完全避免被封锁。有些网站可能会对访问频率、访问流量等进行监控,如果访问过于频繁或流量过大,仍然可能会被封锁。因此,在进行反爬时,需要综合使用多种方法,避免单一方法失效导致整个爬虫失效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值