【Day 29】- 应对反爬虫技术-综合篇

前情提要

昨天跟各位读者简介了反爬虫技术中,较常出现的验证码之应对方法。

开始之前

今天要跟各位介绍的是其它也是常出现的一些反爬虫技术。

以下列举出今天会跟各位介绍的反爬虫技术。

  • Request Headers 检查

  • 使用者操作状况检查

  • 资料载入状况检查

  • Request Headers 检查

有时候被爬取网站会检测目前请求的 Request Headers ,常见的会看 User-Agent,这个的应对方法也十分容易,就是在 Request Headers 上加入自己在浏览器上截取的 User-Agent。

我们在之前的文章也有使用过这个方法。

https://ithelp.ithome.com.tw/articles/10275197

在 Python 的 Requests 库中只要将 Request Headers 当参数传入即可。

url = 'https://www.google.com/search?q=%E7%BE%8E%E9%87%91'
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
resp = requests.get(url, headers={
    'user-agent': user_agent
})
  • 使用者操作状况检查

有些被爬取网站会检查使用者的操作状况。常见的例如查看向网页请求的来源 ip 的频率/次数、查看网页停留时间/渲染状况等。

前者有两种方式来解决。

  1. 每次请求都使用不同的 proxy,网路上只要搜寻 free proxy list 都能搜寻到许多免费的 proxy 资源,这边分享一个 https://free-proxy-list.net/
  2. 在每次向其送出请求後,都固定休息一段时间,在 Python 中,可以使用 time 库中的 sleep 函式来达到。
  • 资料载入状况检查

会依照资源载入状况来进行反爬虫。

这种会看网页的渲染状况的反爬虫技术可以考虑使用 Requests-HTML 或者 Selenium 来使画面渲染,达到模拟使用者的效果。

结语

本次介绍了除验证码外,其他常见的反爬虫技术,也列举了一些常见的应对方案,如果想要更深入了解反爬虫技术的应对,可以去接触资安相关的绕过手法。

补充资料

Free Proxy List : https://free-proxy-list.net/


<<:  Angular 深入浅出三十天:表单与测试 Day29 - ControlContainer

>>:  【Day29-管线】ETL资料工程的必备观念与流程工具Dagster介绍

Day20 Analysis of Algorithms(Ⅱ)

假如说今天有一个问题,有三种不同的解法,必须选择指数越小的,时间复杂度越小! 所以以下这个例子可以知...

如何避免Overfitting

Overfitting是在执行任何模型的时候我们都要注意的问题,今天就来聊聊overfitting是...

企业资料通讯Week5 (4) |DNS (网域名称系统)[一]

甚麽是 DNS? 想知道更深:鸟哥的 Linux 私房菜|第十九章、主机名称控制者: DNS 服务器...

第 7 天 让元件归元件、服务归服务|service、@Injectable、AsyncPipe

前情提要 「英雄之旅」已经可以浏览完整的英雄列表,并透过路由参数来取得特定的英雄资料,达到换页浏览细...

《角色扮演,就能超越原点》

在9/26要上台演讲前,其实不断的在大量阅读、练习写作跟产出。目的是为了让东西更丰富多样,还有让人好...