使用 mitmdump 进行 selenium webDriver绕过网站反爬服务的方法 pdd某宝 可用

安装:  pip install  mitmproxy

新建一个脚本

脚本代码:

 1 from mitmproxy import ctx
 2
 3 injected_javascript = ‘‘‘
 4 // overwrite the `languages` property to use a custom getter
 5 Object.defineProperty(navigator, "languages", {
 6   get: function() {
 7     return ["zh-CN","zh","zh-TW","en-US","en"];
 8   }
 9 });
10 // Overwrite the `plugins` property to use a custom getter.
11 Object.defineProperty(navigator, ‘plugins‘, {
12   get: () => [1, 2, 3, 4, 5],
13 });
14 // Pass the Webdriver test
15 Object.defineProperty(navigator, ‘webdriver‘, {
16   get: () => false,
17 });
18 // Pass the Chrome Test.
19 // We can mock this in as much depth as we need for the test.
20 window.navigator.chrome = {
21   runtime: {},
22   // etc.
23 };
24 // Pass the Permissions Test.
25 const originalQuery = window.navigator.permissions.query;
26 window.navigator.permissions.query = (parameters) => (
27   parameters.name === ‘notifications‘ ?
28     Promise.resolve({ state: Notification.permission }) :
29     originalQuery(parameters)
30 );
31 ‘‘‘
32
33 def response(flow):
34     # Only process 200 responses of HTML content.
35     if not flow.response.status_code == 200:
36         return
37
38     # Inject a script tag containing the JavaScript.
39     html = flow.response.text
40     html = html.replace(‘<head>‘, ‘<head><script>%s</script>‘ % injected_javascript)
41     flow.response.text = str(html)
42     ctx.log.info(‘插入成功 ‘)
43  

然后运行mitmdump

mitmdump -s xxxx.py

默认为8080端口,将webDriver设置代理127.0.0.1:8080

然后就能监听和修改selenium特征了。

原文地址:https://www.cnblogs.com/dayouzi/p/12059102.html

时间: 2024-10-31 15:40:54

使用 mitmdump 进行 selenium webDriver绕过网站反爬服务的方法 pdd某宝 可用的相关文章

selenium WebDriver 截取网站的验证码

在做爬虫项目的时候,有时候会遇到验证码的问题,由于某些网站的验证码是动态生成的,即使是同一个链接,在不同的时间访问可能产生不同的验证码, 一 刚开始的思路就是打开这个验证码的链接,然后通过java代码get请求保存验证码图片到本地,然后用打码工具解析验证码,将验证码自动输入验证框就 可以把验证码的问题解决了,但是问题来,每次的请求同一个地址,产生的验证码图片是不一样的,所以这种方法行不通.所以只能将图片先用selenium  WebDriver 截取到本地,然后用打码工具解析ok ,自动填写验证

那些年绕过的反爬手段

笔者第一份工作就是以java工程师的名义写爬虫,不得不说第一份工作很重要啊,现在除了爬虫不会干别的,到现在已经干了近5年了,期间经历了不少与反爬策略的斗争.最近又耗时两周成功搞定了某网站的反爬策略后,心里有点莫名的惆怅.今日无心工作,就总结下这些年与网站互怼的经验吧. 无反爬裸站 现在一个网站或多或少都会配置一定的反爬措施,毕竟现在一台笔记本的性能比某些小站的服务器都强,如果不加以限制,分分钟就能把你的资源耗尽.前两年的工商网站有个省份没有限制,没多久就把服务器抓瘫了(只能说服务器配置太太太次了

如何突破网站反爬机制

目前常见的Web反采集策略大概有以下几种:? 1)数据加密:? 2)限制访问频率:? 3)数据以非文本形式展现:? 4)验证码保护:? 5)Cookie验证:本文主要探讨一下如何突破"限制访问频率":"限制访问频率"的原理:服务器端程序(例如,WAF)维护了一个客户端(IP)的访问计数,如果客户端(IP)请求频率超过阈值,请求就会被拦截,通常会出现下列情形:? 1)最常见的:返回403或503错误.? 2)连接被重置.? 3)最令人头疼的:返回无效的内容 突破方法:

selenium+webdriver+python 中警告框的处理方法

在自动化测试过程中,经常会遇到弹出警告框的情况,如图所示: 在 WebDriver 中处理 JavaScript 所生成的 alert.confirm 以及 prompt 是很简单的.具体做法是使用 switch_to_alert()方法定位到 alert/confirm/prompt.然后使用 text/accept/dismiss/send_keys 按需进行操做.1. 获取警告框的text消息 2. 接受消息框(确定) 3. 取消 4. 输入值 text 返回 alert/confirm/

python + selenium webdriver 复合型css样式的元素定位方法

<div class="header layout clearfix"></div> 当元素没有id,没有name,没有任何,只有一个class的时候,应该如何去定位这个元素 1.页面存在多个div,使用find_elements_by_tag_name("div")[x] 这种方法可以使用,但是要去数第几个div,太坑 2.使用find_element_by_class_name("header layout clearfix&q

被一个无用的网站反爬到自闭--糗事百科

首先第一个问题: 浏览器拿到的数据包和用requests模块拿到的数据不一样. 第二个问题: 访问第二页,却给了第一页的数据.原来可以拿到 可能是多次拿数据之后,他不封ip,只会给第一页.但是我用浏览器还是可以正常访问. 原文地址:https://www.cnblogs.com/changdasheng/p/10241729.html

如何处理网站的反爬

做爬虫,碰到最多的问题不是代码bug,而是封IP.开发好一个爬虫,部署好服务器,然后开始抓取信息,不一会儿,就提示封IP了,这时候的内心是崩溃的.那么,有什么办法不封IP呢?首先,要知道为什么会封IP,这样才能更好的避免封IP.有些网站反爬措施比较弱,伪装下IP就可以绕过了,修改X-Forwarded-for就万事大吉.但现在这样的网站比较少了,大部分的网站的反爬措施都在不断加强,不断升级,这给避免封IP带来更大的困难.有人说,使用代理IP就万事大吉了.诚然,使用大量的优质代理IP可以解决大部分

爬虫与反爬

爬虫与反爬 (1) 基本的概念 爬虫: 自动获取网站数据的程序 关键是 定时,定量的,批量的获取 反爬虫: 使用技术手段 防止爬虫程序的方法 存在误伤,即 反爬技术 将普通用户识别为爬虫 如果误伤高 --- 效果再好也不能使用 例子: 比如 限制 ip === 用户的ip 一般都是 局域网内动态分配的, 一个爬虫的ip 可能分配给 另一个 非爬虫的用户 有效的方法: 可以在一段时间内 限制 ip,过一段时间 再把 ip释放 反爬的成本: 成功率越高成本越大,拦截率越高,误伤率越高 反爬虫的目的:

网站常见的反爬虫和应对方法(转)

在我们的对2016年大数据行业的预测文章<2016年大数据将走下神坛拥抱生活 资本青睐创业机会多>里,我们曾经提到“在2016年,防止网站数据爬取将变成一种生意.”.今天我找到了来自”BSDR“的一篇文章,文章里主要介绍了常见的反爬虫应对方法,下面是正文. 常见的反爬虫 这几天在爬一个网站,网站做了很多反爬虫工作,爬起来有些艰难,花了一些时间才绕过反爬虫.在这里把我写爬虫以来遇到的各种反爬虫策略和应对的方法总结一下. 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分.这里我们只讨论数据采