Selenium被网站屏蔽后的处理

mitmproxy实现js拦截

mitmproxy主要功能:动态拦截和编辑HTTP数据包
网站屏蔽Selenium原理:Selenium在运行时会暴露一些特征字符串,网站通过调用JS进行检测,检测到特征字符串后进行屏蔽。
解决方案:通过mitmproxy拦截并修改请求,在网站调用JS前将请求拦截,一般这种JS是专门用来进行爬虫工具检测的,即使被拦截修改,也不会影响网站其他功能的正常调用

操作方法

1.搭建selenium代码
mitmproxy只是辅助工具,主体的程序代码需要自己先搭建好
2.安装mitmproxy
python直接安装:pip3 install mitmproxy
3.配置mitmproxy
找到mitmproxy-ca-cert.p12文件(一般在系统盘用户文件夹下有一个“.mitmproxy”的文件夹,在这里面),双击安装,主要点下一步就行了,可以自行百度这个文件的安装
4.通过mitmproxy运行js拦截
找到网站拦截selenium时调用的js
创建一个.py文件,编写拦截程序,比如叫proxy.py

TARGET_URL = ‘网站拦截时调用的js’
INJECT_TEXT = 'Object.defineProperties(navigator,{webdriver:{get:() => false}});

def response(flow):
if flow.request.url.startswith(TARGET_URL):
flow.response.text = INJECT_TEXT + flow.response.text
if ‘网站拦截时调用的js名.js’ in flow.request.url:
flow.response.text = flow.response.text + INJECT_TEXT

运行cmd,切换到proxy.py所在的文件夹,运行mitmdump -s proxy.py命令
注意:网站屏蔽调用的js可能会定期进行更换,所以运行前需要检查下js名称是否准确。
5.运行selenium程序,这时如果一切顺利,那么屏蔽功能已经被拦截了。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值