python爬虫中怎么写反爬虫

python爬虫中怎么写反爬虫,第1张

1、通过UA判断:UA是UserAgent,是要求浏览器的身份标志。
UA是UserAgent,是要求浏览器的身份标志。反爬虫机制通过判断访问要求的头部没有UA来识别爬虫,这种判断方法水平很低,通常不作为唯一的判断标准。反爬虫非常简单,可以随机数UA。
2、通过Cookie判定:Cookie是指会员帐户密码登录验证
Cookie是指会员帐户密码登录验证,通过区分该帐户在短时间内爬行的频率来判断。这种方法的反爬虫也很困难,需要多账户爬行。
3、通过访问频率判定
爬虫类经常在短时间内多次访问目标网站,反爬虫类机制可以通过单个IP访问的频率来判断是否是爬虫类。这样的反爬方式难以反制,只能通过更换IP来解决。
4、通过验证码判定
验证码是反爬虫性价比高的实施方案。反爬虫通常需要访问OCR验证码识别平台,或者使用TesseractOCR识别,或者使用神经网络训练识别验证码。
5、动态性页面加载
使用动态加载的网站通常是为了方便用户点击和查看,爬虫无法与页面互动,这大大增加了爬虫的难度。
一般情况下,用户对网站进行信息爬取时,都要受到“爬虫”的约束,使用户在获取信息时受到一定的阻碍

1、放慢爬取速度,减小对于目标网站造成的压力。但是这样会减少单位时间类的爬取量。
第二种方法是通过设置IP等手段,突破反爬虫机制继续高频率爬取。网站的反爬机制会检查来访的IP地址,为了防止IP被封,这时就可以使用>问题:打开网页不能正常加载,服务器拒绝访问

···

···
stealthminjs文件获取 请自行关注大佬公众号获取: 未闻Code 回复关键字:stealth

我们可以用16进制编辑器将chromedriverexe打开,查找var key= '$cdc_asdjflasutopfhvcZLmcfl_ ',将引号中的字符替换成任意字符即可
我们在Linux中安装hexedit:
···

···
安装完成后,运行命令,将chromedriverexe用16进制打开
···

···
通过Tab键将光标定位到右侧栏,按Ctrl+S进行查找'$cdc_asdjflasutopfhvcZLmcfl_ '然后直接输入替换原有字符后替换完成按Ctrl+W保存,Ctrl+X退出。
然后就可以完美避开反爬机制了

参考文案: >最近听到很多朋友抱怨,某某网站的反爬策略又升级了,更加难爬了。有朋友担心,以后的反爬虫机制会不会杀死所有的爬虫,那样就没法工作了。其实,这种可能性基本没有,毕竟反爬虫机制最初的目标是反抗简单粗暴的爬虫,缓解服务器的压力。它不可能不让真实用户访问网站,不然就没有意义了,而爬虫则可以尽量的伪装成真实用户。

那么如何尽量的伪装成真实用户呢?我们需要研究真实的用户是如何访问网站的,有哪些需要注意的地方。

一、访问频率

真实用户浏览一个网页比较慢,一般都要十几秒到几分钟,甚至更长,那么爬虫也不能过快,不能1秒几个网页甚至十几个网页,那样太假了,肯定会被识别出是爬虫。

二、随机访问

真实用户访问网页是无规律的,突然想看什么内容就点开什么网页,只访问网站上的一部分内容。有些爬虫则是按照顺序一路访问下去,将整个网站都遍历完,这样很容易被识别是爬虫。

三、随机休眠

真实用户访问每一个网页的时间是不定的,有的网页十几秒就看完了,有的网页要停留好几分钟。有些爬虫则是访问所有的网站都用相同的时间,休眠时间也都是相同的,这样很容易被识别出是爬虫。

四、访问次数

真实用户短时间内访问一个网站的次数是有限的,比如一天几百次。而爬虫用户一天可能访问上千次上万次,这样的数量差距足以说明问题,所以单IP的访问次数需要控制。

五、单IP访问次数

因为反爬机制限制访问频率,访问次数,为了提高工作效率,爬虫工程师想到了用代理IP来应对。有的爬虫用了大量的代理IP同时工作,每个 代理IP 都访问到99次(假如目标网站限制单IP访问网站100次)停止访问,切换新的代理IP进行访问,这样也很容易被识别,因为这一切都太有规律了,需要设置代理IP随机访问网站的次数。

以上就是真实用户访问的几种特性,作为爬虫,虽说不能百分之百模仿真实用户,但也应该尽量向这方面伪装。当然,不同的网站具有不同的反爬策略,这个需要我们去具体分析,至于一些最基础的User-Agent、Referer、Cookies等header参数我们也不能忽略,需要时刻注意。爬虫可能会被反爬机制阻挡,但永远杀不死。

常见的数据“资源池”

数据类诉讼纠纷中常见的“资源池”至少有三大类:

商业数据中,如果目标数据是涉及以下内容,“效率”越高、“踩雷”越快:

如果一定要突破对方的技术保护措施爬数据,后果可能就比较严重。

坚持破解反爬措施的案例

A公司在2015年6月成立后研发了“XX神器”等App。

2018年开始使用网络爬虫技术,爬取B公司(被害单位)经营的“某”网站 房产数据

被害单位发现后采取了反爬取措施。

A公司使用破解验证码、绕开挑战登录等方式破解某公司的反爬取措施,继续抓取数据,然后:

将非法获取的房产数据 存放 在自己的服务器中,供“XX神器”App调用;

并向App用户收取会员费盈利。

公诉机关以非法获取计算机信息系统数据罪对A公司及以下自然人提起公诉:

法院认为被告单位和自然人被告均构成非法获取计算机信息系统数据罪,分别判处:

法院对被告单位从轻处罚,对3个自然人被告减轻处罚,是因为甲主动投案、如实供述犯罪事实、当庭自愿认罪认罚,系自首;乙丙在共同犯罪中系从犯,当庭自愿认罪认罚; 案发后A公司和甲乙丙已经赔偿B公司经济损失(100万)并获得谅解

API与计算机系统的关系

2012年,K公司开发上架了一款歌曲和MV视频播放App“Y”。

2015-2017年,某甲就职K公司期间,负责ios端开发以及苹果商店上架等相关事宜。

2018年,“Y”App因版权问题 下线 但是已经下载的客户还是能正常使用,公司也会对App的内容进行更新

2019年1月,某甲开发的“Y-无广告高清纯净版”App(简称“仿制App”)并在苹果应用商店上架以供下载,并通过收取下载费用获利。

某甲写了一个程序,可以模拟真实用户的方式访问K公司服务器,从而抓取到K公司的服务器数据,使用户可以通过访问仿制App看K公司服务器存储的内容。

K公司调查中发现:

关于爬取数据的范围,赵某被捕后供述称:

K公司遵从“爬虫协议”,对数据有的设置了保护、有的没有, 仿制app使用的都是没有设置保护的数据 。

赵某辩护人提出辩护意见称:

“Y”app所有的防护都是对API的保护, API属于接口信息 ,某甲是使用该接口调用数据,即使破解了对API的保护,也并没有侵犯非法获取计算机信息系统数据罪的客体,因而不构成本罪。

法院分析称:

API与计算机信息系统的关系是技术问题,据在案证据无从判定,但在案证据可以证明:

综上,无论这种调取并使用数据是侵入到计算机信息系统内部,亦或是通过API接口进行,均是通过一定的技术手段实现,即使路径不一,结果也应当视为已经获取了“Y”app中的数据。

最终,法院认为某甲 法治观念淡薄 ,为牟私利,未经K公司授权或者同意而以非法方法获取K公司“Y”app中的数据并以此获利19万余元的行为 已构成非法获取计算机信息系统数据罪 ,且属情节特别严重,应予惩处。

最基本的收集规则

数据类立法几乎都会有以下要求:

任何单位和个人收集 、存储、使用、加工、传输、提供、公开数据资源,应当坚持 合法、正当、必要、精准和诚信原则 遵守 网络安全、数据安全、密码安全、电子商务、个人信息保护等有关法律、法规以及国家标准的 强制性要求 ,不得损害国家利益、 社会 公共利益或者他人合法权益。

如果做不到:

从计算机信息系统安全、数据安全、网络信息安全到个人信息保护、知识产权保护,法律法规不断完善,侵犯的法益不管落到哪个领域,民商事诉讼或者行政处罚、刑事追责, 总有一个边界在 。

所以,利用爬虫技术抓取外部数据前还是要有一个立项流程,至少讨论一下:

毕竟不是所有的公司行为都没有个人责任。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13394353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存