;

1.拦截请求 bpu www.baidu.com #拦截 bpu #取消拦截 拦截后提交参数可以在Inspectors中修改 2.拦截响应 bpafter www.baidu.com #拦截 bpafter #取消拦截 返回的数据也在Inspectors中修改,找到SyntaxView中Find & Replace修改替换 3.响应自动替换AutoResponder 确保勾选Enable automatic reaponses 和Unmatched requests passthrough 参考链接:https://blog.csdn.net/Liuyanan990830/article/details/128120537

fiddler拦截请求和修改返回 2022年12月26日
;

1.启动设置 const browser = await puppeteer.launch({ headless: true, args: [ ‘–no-sandbox’, ‘–disable-setuid-sandbox’, ‘–disable-blink-features=AutomationControlled’, ], dumpio: false, }); 2.webdriver // webdriver await page.evaluateOnNewDocument(() => { const newProto = navigator.__proto__; delete newProto.webdriver; //删除 navigator.webdriver字段 navigator.__proto__ = newProto; }); 3.window.chrome // 添加 window.chrome字段,向内部填充一些值 await page.evaluateOnNewDocument(() => { window.chrome = {}; window.chrome.app = { InstallState: ‘hehe’, RunningState: ‘haha’, getDetails: ‘xixi’,…

puppeteer 无头模式反反爬设置汇总 2022年2月17日
;

1.下载 https://telerik-fiddler.s3.amazonaws.com/fiddler/addons/fiddlercertmaker.exe 2.Fiddler抓取https原理? 首先fiddler截获客户端浏览器发送给服务器的https请求, 此时还未建立握手。 第一步, fiddler向服务器发送请求进行握手, 获取到服务器的CA证书, 用根证书公钥进行解密, 验证服务器数据签名, 获取到服务器CA证书公钥。 第二步, fiddler伪造自己的CA证书, 冒充服务器证书传递给客户端浏览器, 客户端浏览器做跟fiddler一样的事。 第三步, 客户端浏览器生成https通信用的对称密钥, 用fiddler伪造的证书公钥加密后传递给服务器, 被fiddler截获。 第四步, fiddler将截获的密文用自己伪造证书的私钥解开, 获得https通信用的对称密钥。 第五步, fiddler将对称密钥用服务器证书公钥加密传递给服务器, 服务器用私钥解开后建立信任, 握手完成, 用对称密钥加密消息, 开始通信。 第六步, fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端浏览器。第七步, 客户端向服务器发送消息, 用对称密钥加密, 被fidller截获后, 解密获得明文。由…

Fiddler重新安装https证书 2021年6月14日
;

1 背景 在PC端反抓取过程中为了识别爬虫,其中一种方式通过上报请求者的设备信息,通过设备信息来识别是否是一个爬虫。 当请求目标网站后,必须请求一个指纹计算脚本,该脚本收集设备信息,根据这些设备信息计算出一段数值并作为指纹,最终将计算结果发送给服务器。 浏览器设备信息包括navigator.userAgent、window.screen、navigator.languages等。抓取者在抓取时通常会自己构造请求、或使用无头浏览器工具,例如phantomJs。而这些工具的设备信息实际上会和真实浏览器有一定差异。因此根据这些差异达到识别的目的。 2 指纹脚本 以github上一个指纹库[1]为例,其中检测虚假浏览器的代码片段如下。 var getHasLiedBrowser = function () { var userAgent = navigator.userAgent.toLowerCase() var productSub = navigator.productSub // we extract the browser from the user agent (respect the order of the tests) var browser if (userAgent.indexOf(‘firefox’) >= 0) { b…

反爬虫之浏览器指纹上报代码的分析 2020年4月9日
;

1.下载 http://airtest.netease.com/changelog.html 2.手机开启usb调试 华为手机开启方式 https://jingyan.baidu.com/article/a3aad71a0a4c4eb1fb00963a.html 3.AirtestIDE中操作 http://airtest.netease.com/docs/cn/2_device_connection/1_android_phone_connection.html https://www.cnblogs.com/xieqiankun/p/use_airtest.html

AirtestIDE进行小程序ui测试 2020年4月8日
;

1.方案一,动态获取渲染后的body高度 const dimensions = await page.evaluate(() => { return { width: document.body.scrollWidth, height: document.body.scrollHeight, deviceScaleFactor: window.devicePixelRatio }; }); await page.setViewport(dimensions); 代码放置在页面渲染成功,截图代码之前。 2.方案二,其实截图方法内自带相关的配置参数 await page.screenshot({path: ‘img/website.png’, fullPage:true});

puppeteer全屏截图 2019年6月19日
;

1.报错信息 (node:13852) UnhandledPromiseRejectionWarning: TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded 2.解决方法 const timeout = 180 * 1000 await Promise.all([ page.goto(‘http://website.com’, {timeout}), page.waitFor(‘body’, {timeout}) ]) 或者 await page.goto(‘http://website.com’, {timeout: 180000}) by default each time a page navigate to an url (page.goto) it waits for the event ‘load’ to be fired and by default it waits 30000ms, if the event (load) is not fired the page throw: Timeout Exceeded probably you are loading a heavy or slow page you should chan…

puppeteer报错’UnhandledPromiseRejectionWarning’ 2019年6月18日
;

安装 步骤一:新建目录puppeteerProject 步骤二:初始化项目npm init 步骤三:npm i puppeteer (此处需要下载Chromium,如果下载失败更换为cnpm) 中途会下载Chromium,大小300M 保存路径\node_modules\puppeteer\.local-chromium\win64-588429\chrome-win32 配置相关 const browser = await puppeteer.launch({ headless: false, // default is true 打开运行界面 executablePath: ‘C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe’ // 在正式的chrome浏览器中运行代码 slowMo: 250 // slow down by 250ms }); 防止被反爬虫识别 puppeteer特征属性 navigator.userAgent配置中如果headless未设置或者为true,此时userAgent中会包含headlessChrome navigator.webdriver正常浏览器中并没有这个属性,puppeteer被特别添加,可以用如下代码…

puppeteer介绍 2018年9月28日
;

0×01 前言 前两天在百家号上看到一篇名为《反击爬虫,前端工程师的脑洞可以有多大?》的文章,文章从多方面结合实际情况列举了包括猫眼电影、美团、去哪儿等大型电商网站的反爬虫机制。的确,如文章所说,对于一张网页,我们往往希望它是结构良好,内容清晰的,这样搜索引擎才能准确地认知它;而反过来,又有一些情景,我们不希望内容能被轻易获取,比方说电商网站的交易额,高等学校网站的题目等。因为这些内容,往往是一个产品的生命线,必须做到有效地保护。这就是爬虫与反爬虫这一话题的由来。本文就以做的较好的“猫眼电影”网站为例,搞定他的反爬虫机制,轻松爬去我们想要的数据! 0×02 常见反爬虫 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。而作为程序员的我们只关心数据采集部分,处理什么的还是交给那些数据分析师去搞吧。 一般来说,大多数网站会从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。前两种比较容易遇到,大多数网站都从这些角度来反爬虫,而第三种则相对比较特殊,一些应用ajax的网站会采用,这样无疑会增大了爬虫爬取的难度。 然而,这三种反爬虫策略则早已有应对的方法和策略。如果遇到了从用户请求的Headers反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Refer…

反击“猫眼电影”网站的反爬虫策略 2017年7月26日
;

1. 前言 对于一张网页,我们往往希望它是结构良好,内容清晰的,这样搜索引擎才能准确地认知它。 而反过来,又有一些情景,我们不希望内容能被轻易获取,比方说电商网站的交易额,教育网站的题目等。因为这些内容,往往是一个产品的生命线,必须做到有效地保护。这就是爬虫与反爬虫这一话题的由来。 2. 常见反爬虫策略 但是世界上没有一个网站,能做到完美地反爬虫。 如果页面希望能在用户面前正常展示,同时又不给爬虫机会,就必须要做到识别真人与机器人。因此工程师们做了各种尝试,这些策略大多采用于后端,也是目前比较常规单有效的手段,比如: User-Agent + Referer检测 账号及Cookie验证 验证码 IP限制频次 而爬虫是可以无限逼近于真人的,比如: chrome headless或phantomjs来模拟浏览器环境 tesseract识别验证码 代理IP淘宝就能买到 所以我们说,100%的反爬虫策略?不存在的。 更多的是体力活,是个难易程度的问题。 不过作为前端工程师,我们可以增加一下游戏难度,设计出一些很(sang)有(xin)意(bing)思(kuang)的反爬虫策略。 3. 前端与反爬虫 3.1 font-face拼凑式 例子:猫眼电影 猫眼电影里,对于票房数据,展示的并不是纯粹的数字。 页面使用了font-face定义了字符集,并通过un…

反击爬虫,前端工程师的脑洞可以有多大? 2017年7月26日
;

那些你不知道的爬虫反爬虫套路 前言 爬虫与反爬虫,是一个很不阳光的行业。 这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实。这可能是出于公司战略角度来看的,与技术无关。 第二是,这个行业并不是一个很积极向上的行业。很多人在这个行业摸爬滚打了多年,积攒了大量的经验,但是悲哀的发现,这些经验很难兑换成闪光的简历。面试的时候,因为双方爬虫理念或者反爬虫理念不同,也很可能互不认可,影响自己的求职之路。本来程序员就有“文人相轻”的倾向,何况理念真的大不同。 然而这就是程序员的宿命。不管这个行业有多么的不阳光,依然无法阻挡大量的人进入这个行业,因为有公司的需求。 那么,公司到底有什么样的需求,导致了我们真的需要爬虫 / 反爬虫呢? 反爬虫很好理解,有了爬虫我们自然要反爬虫。对于程序员来说,哪怕仅仅是出于“我就是要证明我技术比你好”的目的,也会去做。对于公司来说,意义更加重大,最少,也能降低服务器负载,光凭这一点,反爬虫就有充足的生存价值。 那么爬虫呢? 最早的爬虫起源于搜索引擎。搜索引擎是善意的爬虫,可以检索你的一切信息,并提供给其他用户访问。为此他们还专门定义了 robots.txt 文件,作为君子协定,这是一个双赢的局面。 然而事情很快被一些人破坏了…

互联网中一半以上的流量都是爬虫?不,比这还多 2017年7月17日
;

摘要 对于大数据行业,数据的价值不言而喻,在这个信息爆炸的年代,互联网上有太多的信息数据,对于中小微公司,合理利用爬虫爬取有价值的数据,是弥补自身先天数据短板的不二选择,本文主要从爬虫原理、架构、分类以及反爬虫技术来对爬虫技术进行了总结。 1、爬虫技术概述 网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1) …

网络爬虫技术总结 2016年7月20日