教你解决禁止F12、调试Debugger、丑化JS等反爬

2023-10-27

1

前言

在爬取数据时,有一些网站设置了反爬(禁止F12网页调试Debugger丑化Js),比如下面这几种情况:

1.禁止查看源代码

2.网页调试Debugger

上面禁止查看网页问题,可以先按F12,再访问网站,但是又有网页调试Debugger

经过各种百度之后,可以在浏览器里面关闭Debug调试

这样就点击为蓝色就可以关闭了。

3.丑化JS

通过查看,可以发现数据是异步加载过来,查看数据包(network)时,发现js是被丑化过,无法查看

遇到以上这些反爬,难道就会阻止我们去采集数据了???显然不可能(哈哈哈)

上有政策,下有对策

今天教大家如何用python去解决这些问题,并爬取数据。

2

Python解决上述反爬

1.引入Selenium

本来想通过Reuqest请求数据,奈何数据是异步加载,异步链接也被js丑化了。

这时候我考虑抓包方式,但是很遗憾,无法通过抓包方式获取到异步链接

因此这里采用Selenium方式去爬取数据(后面还有新问题,太坑了,但是都解决了

2.Selenium准备工作

为了在python中使用Selenium,需要进行一些准备工作

安装Selenium库

通过下面命令去安装Selemium库

pip install selenium

下载chromedriver.exe

查看自己对应浏览器(这里使用chrome)版本

在下面这个地址去下载chromedriver.exe

http://chromedriver.storage.googleapis.com/index.html

下载自己浏览器对应版本(我这里选择89)

配置chromedriver.exe

将下载好的文件复制到python安装路径下

通过下面python代码可以查看python安装路径

import sys
print(sys.path)

3.Selenium请求数据

"""导入selenium库"""
from selenium import webdriver
driver = webdriver.Chrome()
"""未将chromedriver.ex复制到python路径下,需要这样写"""
#driver = webdriver.Chrome(executable_path="chromedriver.exe绝对路径")
driver.get('https://www.aqistudy.cn/historydata/daydata.php?city=北京')

结果如下:

发现没有获取到数据,原因是网站监测到非法操作,因此开启Debuggger,所以数据没有异步加载过来。

原本应该是这样的

下面需要进行另外操作(关闭Debugger)

4.给Selenium设置代理

设置代理

找到chrome的路径

在cmd(终端)下,进入到该路径

启动代理

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"

通过上面这个命令启动代理

ip是本机ip(127.0.0.1)

端口是9222

启动之后,自动打开chrome,并等待执行代码

编写代码

from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_experimental_option('debuggerAddress','127.0.0.1:9222')
driver = webdriver.Chrome(executable_path="C:/Users/Administrator/Anaconda3/envs/lyc36/chromedriver.exe",chrome_options=option)
driver.get('https://www.aqistudy.cn/historydata/daydata.php?city=北京')

这样等待的浏览器就自动加载到数据,成功解决!!

下面请看动图演示

3

总结

1.解决了F12禁止查看网页反爬.

2.解决了网页调试Debugger反爬。

3.Selenium结合代去模拟浏览器请求。

4.本文总结了几种反爬情况,推荐收藏!收藏!收藏!

最后说一声:原创不易,求给个赞、在看、评论

------------- 推荐阅读 -------------

爬虫入门篇

1.今天只分享python、爬虫入门级学习资料

2.以某乎为实战案例,教你用Python爬取手机App数据


3.教你用python爬取『京东』商品数据,原来这么简单!

4.以『赘婿』为实战案例,手把手教会你用python爬取『爱奇艺』视频弹幕


5.python爬取44130条用户观影数据,分析挖掘用户与电影之间的隐藏信息!


6.基金这么赚钱!!编程实现基金从采集到分析通用模板!(白酒为例)


7.我爬取了爬虫岗位薪资,分析后发现爬虫真香


8.竟然如此简单!输入明星名字就可以直接爬取高清图片


9.pyhton爬取爱豆(李易峰)微博评论(附源码)


10.快手解析视频真实链接(爬取快手视频)


11.实战讲解四种不同爬虫解析数据方法,必须掌握!

爬虫框架篇

1.以『B站』为实战案例!手把手教你掌握爬虫必备框架『Scrapy』

2.爬取1907条『课程学习』数据,分析哪类学习资源最受大学生青睐

爬虫反爬篇

1.爬虫遇到反爬机制怎么办? 看看我是如何解决的!


2.python实战破解『梨视频』反爬机制,轻松实现批量视频下载!


3.『异步反爬』别再说自己不会爬取『抖音』视频了!

可视化篇

1.爬取3w条『各种品牌』笔记本电脑数据,统计分析并进行可视化展示!真好看~


2.python爬取7w+『赘婿』弹幕,发现弹幕比剧还精彩!


3.爬取1907条『课程学习』数据,分析哪类学习资源最受大学生青睐


4.python爬取各类基金数据,以『动图可视化』方式展示基金的涨跌情况


5.python爬取『大年初一』热映电影,以『可视化及词云秀』方式带你了解热映电影


6.python爬取淘宝全部『螺蛳粉』数据,看看你真的了解螺蛳粉吗?


7.爬取淘宝热卖商品并可视化分析,看看大家都喜欢买什么!


8.王者荣耀白晶晶皮肤1小时销量突破千万!分析网友评论我发现了原因


9.分析各类基金近一年『日涨幅』流水线动态图!哭了,真是跌妈不认!


10.分析B站《送你一朵小红花》弹幕评论


11.我爬取了爬虫岗位薪资,分析后发现爬虫真香


12.python实现在线微博数据可视化


13.一键查询明星个人信息,并以知识图谱可视化展示

python工具篇

1.教你用python爬虫下载1w+『ppt模板』,再也不用付费去购买啦!


2.python爬取下载m3u8加密视频,原来这么简单!


3.详细实战教程!部署Flask网站+域名访问+免费https证书

4.花一天时间做了一个福利资源网站!免费分享给大家

5.python实现四种出行路线规划(公交、步行、驾车、骑行)


6.35行代码下载任意网页的图片


7.python窃取摄像头照片(摄像头拍照+邮箱发送+打包exe)


8.30行爬虫代码实现中英互译


9.教你搭建一个花卉识别系统(超级简单)


10.一键查询明星个人信息,并以知识图谱可视化展示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

教你解决禁止F12、调试Debugger、丑化JS等反爬 的相关文章

  • 状态代码 304(Jade、Node、Express)

    我在我的 jade 文件中链接 bootstrap 和 jquery link rel stylesheet href stylesheets bootstrap css and script src javascripts jquery
  • 如何使用 jQuery 在第二次单击时反转 CSS 动画

    我制作了以下菜单图标 CSS 动画 当我点击它时会触发它 当我使用 jQuery 第二次单击它时 我想使其反向动画 path1 stroke dasharray 33px stroke dashoffset 33px animation l
  • 如何强制ipad上出现滚动条? (移动 Safari)[重复]

    这个问题在这里已经有答案了 我无法在移动 Safari 中显示滚动条 因为当存在可滚动内容时 overflow auto 不起作用 我发现这个CSS属性 webkit overflow scrolling 触摸 正如一些人建议的那样 这是针
  • 防止拖动不可拖动元素时出现重影?

    我正在创建一个利用 HTML5 拖放 API 的网站 但是 为了增加用户体验 我想在用户拖动不可拖动元素时防止出现重影 这可能吗 此外 几乎每个元素似乎 可拖动的 默认情况下 人们可以单击然后快速拖动浏览器中的几乎任何元素 这会创建一个重影
  • CSS3 媒体查询放在哪里?

    我正在与自己进行一场哲学辩论 讨论将媒体查询放在样式表中的最佳位置 我正在尝试模块化地构建我的CSS 例如OOCSS或SMACSS等 鉴于这种情况 我看到两个选择 将所有媒体查询放在单独的样式表或主样式表的一部分中 将媒体查询置于其基本对应
  • 我可以为CSS写一个循环吗

    我有一个场景 我得到像这样生成的 ID div class containerLength div div div div div div div div div 等等 有没有办法我可以编写一些CSS来通过循环来定位它们 也许像 new i
  • SVG 图标像素对齐?

    在此图像中 左侧 黑色 垃圾桶是图标字体 它的字体大小是 16px 这使得图标在 100 的时间里看起来都很清晰 两个蓝色垃圾桶是 SVG 它们具有完全相同的标记 其中之一happened一个是像素对齐的 另一个不是 我怎样才能强制我的 S
  • 使用 css 变换在其父对象的宽度上对对象进行动画处理

    我正在尝试使用 css 转换来转换 100 宽度包装器内元素的位置来提高动画性能 因此 它从左侧进入屏幕并从右侧退出 然后重复动画 我想我可以在这个动画中使用百分比 我发现翻译与您正在制作动画的对象相关 因此 如果您有一个 100px 宽的
  • uncss 错误:C.UTF-8:不是有效的语言标签

    嗨 我正在尝试使用UNCSS https github com giakki uncss第一次从 CSS 中删除未使用的样式 我收到以下错误 Fontconfig 警告 忽略 C UTF 8 不是有效的语言标记 home ubuntu nv
  • chrome css 动画上的抖动

    尝试使用两个具有相同背景图像 svg 的居中 div 制作一个从中心淡入图像的 css 动画 并为其宽度和背景位置设置动画 问题是 在 chrome 上 存在严重的抖动问题 也许是 chrome 循环执行动画步骤 而不是同时执行它们 这是j
  • 根据窗口大小调整 div 及其内部内容的大小

    我已经查找了一百万种技术 但我无法让它发挥作用 我知道还有其他类似的帖子 如果它给任何人带来麻烦 我很抱歉 但我需要针对我的代码的具体说明 因为我很愚蠢 提前非常感谢 我希望 div 容器 contentContactBox 以及其中的所有
  • 如何仅在单击子级时触发父级单击事件

    子级和父级都是可点击的 子级可以是带有 jQ uery 单击事件的链接或 div 当我点击子事件时 如何只触发父事件而不触发子事件 DOM 事件阶段 活动分为三个阶段 Capture 第一阶段是 捕获 其中从事件处理程序开始调用
  • onMouseEnter 和 onMouseLeave 未按预期运行

    我正在尝试为我的组件模拟悬停效果 然而 onMouseEnter Leave 事件没有按预期工作 现在我试图让它简单地 console log 一个字符串来检查它是否正常工作 但什么也没有发生 目的是我可以在悬停时更改其背景颜色 我尝试通过
  • jQuery hide() 动画向右滑动

    使用 jQuery 的hide 使用可选的持续时间参数的函数 我可以在我的网站上获得一些警报框 以优雅地滑出屏幕并消失 隐藏动画的默认方向似乎是向左滑动 尽管此行为未在hide 定义页 http api jquery com hide 我需
  • 对(静态)CSS 文件所做的更改未反映在 Django 开发服务器中

    我正在使用 Django 制作一个 Web 应用程序 但在将 CSS 文件 存储在我的应用程序的静态目录中 中所做的更改反映到开发服务器上时遇到了一些问题 需要明确的是 服务器能够访问静态文件 但是 它目前停留在我的 CSS 文件的旧版本上
  • CSS变量名可以以数字开头吗?

    我想知道定义一个以这样的数字开头的 css 变量是否有效 root 1space 32px 这在 Chrome 上工作得很好 但是该代码没有经过验证https jigsaw w3 org css validator https jigsaw
  • 如何使用 CSS 或 javascript 创建圆角

    复制 使用 CSS 创建圆角的最佳方法是什么 https stackoverflow com questions 7089 what is the best way to create rounded corners using css 7
  • 如何使

    我有一个列表 用作选项卡列表 div ul class TabControl li a href search Funds Funds 60 a li li a href search Companies Companies 4 a li
  • AngularJS:ng-show 与 display:none

    我有一个用例 我必须使用 CSS 默认隐藏 HTML 元素 如下所示 HTML div class item div CSS item display none 但是 我需要在页面加载后使用 ng show 切换元素的可见性 如下所示 di
  • 与 body 相比,将 css 规则应用于 html 有什么区别?

    我看不出以下之间的区别 html background f1f1f1 and body background f1f1f1 有什么解释吗 没有真正的区别 如果你只是谈论在哪里申请background 否则BoltClock 对另一个问题的回

随机推荐

  • oracle体验实验,Oracle实验三

    1 实验目的 1 掌握表的创建与管理 2 掌握索引的创建与管理 3 掌握视图的创建与管理 4 掌握序列的创建与应用 2 实验环境 Win10 以及Oracle 11g 3 实验要求 1 为图书销售系统创建表 2 在图书销售系统适当表的适当列
  • 机器学习案例6:基于SVM的数字识别

    案例6 基于SVM的数字识别 为什么写本博客 前人种树 后人乘凉 希望自己的学习笔记可以帮助到需要的人 需要的基础 懂不懂原理不重要 本系列的目标是使用python实现机器学习 必须会的东西 python基础 numpy pandas ma
  • 在word中插入显示在同一行的两张图片(且各自带有题注)

    http blog csdn net xiao xia article details 46699271 先将两张图片均导入word中 位置设置为 嵌入文本行中 调整t图片大小使得两图片刚好可以呈现在同一行 如果图片不需要题注 或者两图片共
  • 电动摄像机-多输入多输出(MIMO)非线性自回归系统辨识(NARX)——基于MATLAB

    目录 前言 1 输入输出的数据 测量数据序列 2 非线性ARX IDNLARX 模型 使用Wavenet 小波网络 的初步估计 3 非线性ARX模型 尝试更高阶 非线性ARX模型 调整非线性估计量的单位数 4 非线性ARX模型 尝试其他非线
  • caffe运行时常见错误

    这篇文章记录了我运行python时遇到的错误 以及我的解决方法 可能不够全面 欢迎大家一起讨论 补充 1 import caffe 报错 No module named caffe 原因 没有添加caffe python目录到bash sh
  • 自由手写体字帖pdf_英语字帖5分钟做完专属描红字帖,英文书写体一键生成,还不快来看看?...

    英文书写 一直是初学英语练习的重点 从入门级别的笔顺练习 到后来丝滑的连笔书写 现在还有 衡水体 这种为了提高卷面整体颜值的字体 而制作一份专属练习字帖的难度之大 耗时之长 是家长 教师的难处 有这样一个网站 只需要大家把需要练习的内容输入
  • 实意动词的特征和用法

    文章目录 常见的实意动词 实意动词的否定 实意动词提问 常见的实意动词 come read go watch play fly write 例句 He comes from shanghai she is reading story boo
  • 手机上普通h5页面a标签href方式跳转页面会请求两次解决办法

    必须把a标签的href事件屏蔽掉 解决办法是使用onclick方法 替代href事件 实现页面跳转 具体代码如下 a href span class buy bargain btn 去充值 span a
  • 渗透测试工具ZAP入门教程(4)-设置代理谷歌浏览器

    ZAP 代理原理 如下浏览器 拿Chrome为例 Chrome发出的请求都会先经过 ZAP 然后再由 ZAP 发往服务器 如下图 设置代理 1 Chrome设置只需要在地址栏输入 chrome settings 2 然后在搜索栏输入 代理
  • C语言实现扫雷【超详细讲解】

    目录 一 实现扫雷的基本思路 二 代码实现的具体步骤 三 完整代码 1 saolei h部分 2 saolei c部分 3 test c部分 扫雷和三子棋有很多相似的地方 相信大家认真学习完三子棋再将本篇博客认真学习完 会很好的掌握相关的知
  • 缠论是一种交易方法炒股是不是一定要学习缠论(利用缠论如何选股)

    纠缠论是一种交易方法 有必要学习纠缠论吗 1 复杂的数学思维 思考不仅对投机很重要 对股票交易也很重要 这是一项重要的人类能力 缜密的思考和清晰的表达是做好任何事情的前提 这里的数学思维是指我们高中时做的几何题 假设条件a 条件b 证明结论
  • matlab 聚类

    原网址 http blog sina com cn s blog 62f3c4ef01014wz1 html cited from cited from http hi baidu com coralliu blog item dbde03
  • 学好诊脉 破解难症

    from 老中医 LaoZY cn 学好诊脉 破解难症 中国中医药报 2009年9月24日 高允旺 山西临汾永旺脑病医院 很多乡村或基层医生学中医往往是自学或跟师学习 在学习中 脉诊是非常不好掌握的 但是脉诊确实又非常重要 笔者在临证40年
  • C++11并发——多线程lock_gurad ,unique_lock (三)

    http www cnblogs com haippy p 3346477 html struct defer lock t 该类型的常量对象 defer lock defer lock 是一个常量对象 std lock guard 介绍
  • cannot call getWriter() after getOutputStream()

    cannot call getWriter after getOutputStream 在项目里的一个导出EXCEL方法总是报错 报错内容为 cannot call getWriter after getOutputStream 字面意思很
  • 简单动态字符串

    Sds Simple Dynamic String 简单动态字符串 是 Redis 底层所使用的字符串表示 几乎所有的 Redis 模块中都用了 sds 常规字符串 在 C 语言中 字符串可以用一个 0 结尾的 char 数组来表示 比如说
  • 华为OD机试 -猴子爬山(Java)

    题目描述 一天一只顽猴想要从山脚爬到山顶 途中经过一个有n个台阶的阶梯 但是这个猴子有个习惯 每一次只跳1步或3步 试问 猴子通过这个阶梯有多少种不同的跳跃方式 输入描述 输入只有一个数n 0 lt n lt 50 代表此阶梯有多个台阶 输
  • Host与SSD交互步骤以及head,tail获取

    一 步骤 1 主机HOST组64Byte的SQE到SQ copy到host内存的SQ中 具体位置由Tail来决定 2 Host写SQ的DB 写的内容是Tail值 通知SSD取命令 register中的位置代表哪个Queue的DB 3 SSD
  • 放开那三国3服务器维护,放开那三国3上不去怎么办 放开那三国3服务器维护登陆方法...

    放开那三国3作为放开那三国系列的最新续作 一经推出自然吸引了不少新手玩家的目光 不过一些小伙伴在下载了游戏之后发现 放开那三国3服务器维护怎么办 下面18183小编就为就来分享一下进不了游戏的解决方法 快一起看看吧 对于服务器维护这一问题
  • 教你解决禁止F12、调试Debugger、丑化JS等反爬

    1 前言 在爬取数据时 有一些网站设置了反爬 禁止F12 网页调试Debugger 丑化Js 比如下面这几种情况 1 禁止查看源代码 2 网页调试Debugger 上面禁止查看网页问题 可以先按F12 再访问网站 但是又有网页调试Debug