关于爬虫和反爬虫的简略方案分享

 更新时间:2018年01月14日 10:56:33   作者:ljmatlight  
这篇文章主要给大家介绍了一些关于爬虫和反爬虫的简略方案的相关资料,文中介绍的非常详细,对大家理解和学习爬虫与反爬虫具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

前言

爬虫和反爬虫日益成为每家公司的标配系统。

爬虫在情报获取、虚假流量、动态定价、恶意攻击、薅羊毛等方面都能起到很关键的作用,所以每家公司都或多或少的需要开发一些爬虫程序,业界在这方面的成熟的方案也非常多。

有矛就有盾,每家公司也相应的需要反爬虫系统来达到数据保护、系统稳定性保障、竞争优势保持的目的。

像安全与黑客从来都是相辅相成一样。

爬虫与反爬虫也是在双方程序员的斗智斗勇的过程不断发展和成长的。

抓包

抓包的目的: 分析出协议请求使用的数据,请求接口,参数等等。

常用的抓包分析工具:

  • Fiddler
  • Charles
  • Sniffer
  • Wireshark

具体使用策略,请自行百度,Google。

抓数据

使用 HttpClient 模拟请求

充分了解 HttpClient 的特性,使用方式等。

HttpClient4.5官方教程

user_agent 的使用

使用 user_agent 的伪装和轮换模拟不同的客户端。

建立UserAgent池,可以通过以下地址获取一定量的UserAgent的信息。

http://www.fynas.com/ua/search?b=Chrome&k=

代理IP的使用

建立代理ip池,一般使用的免费或收费代理获取代理ip每秒都会有一定的频率限制。

那么我们在使用的时候,就要在频率限制内建立自己内部的一些策略,

当然这些策略建立在代理服务商的策略之上。因此设计实施时要考虑易维护性。

http代理

有些网站(包括APP、PC)具有一定的反爬虫能力,

如拒绝代理ip直接请求接口:

这是我使用代理ip请求登录接口时,某APP的响应:

CONNECT refused by proxy

而使用socks代理则无此问题。这就不得不要了解http代理和socks代理的区别。

socks代理

待续

设置访问频率

即便是使用了代理ip,那么对目标接口的访问也要有一定的频率控制,

防止目标服务方检测出频率过快,进行拒绝服务的响应。

Cookie 池失效和更新策略

获取目标站点Cookie有效时间,

将对应账号和Cookie存入Redis,

起一个任务对账号Cookie进行定时检测,

接近失效时间,进行提前更新Cookie信息,

具体Cookie 池Cookie的失效和更新策略需要根据自己业务进行适当调整。

防止目标方的分析

  • 确保同一账号的请求使用的是同一个UserAgent、同一个代理ip。
  • 注意访问频率
  • 其他

总而言之,就是模拟正常的客户端发起对服务方的请求,伪装的越像正常的客户端,服务方越难分析出。

只要是服务方能够提供服务,一般情况下都可以进行数据的爬取,

只不过是难易程度不同。

如果出于商业目的,要考虑付出的成本到底是否合适。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 自动驾驶网络到底是什么

    自动驾驶网络到底是什么

    自动驾驶网络(Self-Driving Network)是一种可预测并具有自主运行能力的网络。简单理解华为还是做IT基础设施的网络产品,只不过就是“网络”的自动驾驶。那网络的自动驾驶是什么?这个问题,每个人都有自己的理解,接下来我将来回答一下这个问题。
    2021-05-05
  • 利用ChatGPT编写一段嵌入式代码

    利用ChatGPT编写一段嵌入式代码

    ChatGPT也热火朝天了有一段时间了,今天闲来没事,也想着玩一玩ChatGPT,看看是不是网上说的那么强大!本文就来用ChatGPT编写一段嵌入式代码,看看效果如何
    2023-02-02
  • VSCode远程XHR failed无法连接的问题及解决方案

    VSCode远程XHR failed无法连接的问题及解决方案

    VSCode进行远程连接时会检查服务端的Server运行情况,如未运行则需要下载安装,在下载过程中可能需要访问外网,如果外网不通则连接过程失败,解决方法是手动下载离线安装包,手动解压至指定的路径即可,对VSCode远程无法连接问题感兴趣的朋友一起看看吧
    2024-03-03
  • Windows环境下实现Jenkins部署的教程详解

    Windows环境下实现Jenkins部署的教程详解

    这篇文章主要介绍了Windows环境下实现Jenkins部署,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • chrome扩展学习 右键菜单实现代码

    chrome扩展学习 右键菜单实现代码

    chrome扩展学习 右键菜单实现代码,需要的朋友可以参考下
    2012-11-11
  • HarmonyOS系统利用AVPlayer开发视频播放功能

    HarmonyOS系统利用AVPlayer开发视频播放功能

    AVPlayer是HarmonyOS提供的一个高级音视频播放接口,整合流媒体解析、本地资源处理、媒体解封装、视频解码和渲染等功能,本文将详细介绍如何在HarmonyOS系统中利用功能强大的AVPlayer来开发视频播放功能,通过一个完整的示例程序,带您从零到一实现端到端的视频播放解决方案
    2025-04-04
  • 解析jetbrains IDE的插件加载不出来的问题(IDEA、pycharm等)

    解析jetbrains IDE的插件加载不出来的问题(IDEA、pycharm等)

    这篇文章主要介绍了解析jetbrains IDE的插件加载不出来(IDEA、pycharm等),本文给大家分享解决方案,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • HttpGet请求与Post请求中参数乱码原因剖析与解决方案

    HttpGet请求与Post请求中参数乱码原因剖析与解决方案

    这篇文章主要介绍了HttpGet请求与Post请求中参数乱码原因剖析,文中有相关的代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-07-07
  • git checkout 命令使用详解

    git checkout 命令使用详解

    这篇文章主要介绍了git checkout 命令使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • OpenManus本地部署实战亲测有效完全免费(最新推荐)

    OpenManus本地部署实战亲测有效完全免费(最新推荐)

    文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一起看看吧
    2025-03-03

最新评论