当前位置: 首页 > news >正文

哈尔滨建站免费模板做母婴的网站有哪些

哈尔滨建站免费模板,做母婴的网站有哪些,宿迁装饰网站建设公司排名,体育 网站建设询价函格式Selenium隐藏浏览器特征 Selenium特征1. CDP2. stealth.min.js3. undetected_chromedriver4. 操作已开启的浏览器4. 常见的隐藏Selenium特征的方法4.1 修改navigator.webdriver标志4.2 改变user-agent4.3 排除或关闭一些Selenium相关的开关4.4 代码展示4.5 总结 Selenium特征 … Selenium隐藏浏览器特征 Selenium特征1. CDP2. stealth.min.js3. undetected_chromedriver4. 操作已开启的浏览器4. 常见的隐藏Selenium特征的方法4.1 修改navigator.webdriver标志4.2 改变user-agent4.3 排除或关闭一些Selenium相关的开关4.4 代码展示4.5 总结 Selenium特征 我们使用 Selenium 对网页进行爬虫时如果不做任何处理直接进行爬取会导致很多特征是暴露的 对一些做了反爬的网站做了特征检测用来阻止一些恶意爬虫 来源网址: https://blog.csdn.net/m0_67695717/article/details/128866017 https://blog.csdn.net/m0_67695717/article/details/130687622 https://blog.csdn.net/houmenghu/article/details/120489611 1. CDP CDP 全称为 Chrome Devtools-Protocol https://chromedevtools.github.io/devtools-protocol/ 通过执行 CDP 命令可以在网页加载前运行一段代码进而改变浏览器的指纹特征 比如window.navigator.webdriver 在 Selenium 直接打开网页时返回结果为 true而手动打开网页时该对象值为 undefined 因此我们可以利用 CDP 命令修改该对象的值达到隐藏指纹特征的目的 from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service import timechrome_options Options()s Service(rchromedriver.exe路径)driver webdriver.Chrome(services, optionschrome_options)# 执行cdp命令修改window.navigator.webdriver 对象的值 driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument, {source: Object.defineProperty(navigator, webdriver, {get: () undefined}) })driver.get(urlURL)driver.save_screenshot(result.png)# 保存 source driver.page_source with open(result.html, w, encodingutf-8) as f:f.write(source)time.sleep(200) 需要指出的是浏览器的指纹特征很多使用该方法存在一些局限性 2. stealth.min.js 该文件包含了常用的浏览器特征我们只需要读取该文件然后执行 CDP 命令即可 下载地址 https://github.com/berstend/puppeteer-extra/tree/stealth-js from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By import timechrome_options Options()# 无头模式 # chrome_options.add_argument(--headless)# 添加请求头 chrome_options.add_argument(user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36)s Service(rchromedriver.exe路径)driver webdriver.Chrome(services, optionschrome_options)# 利用stealth.min.js隐藏浏览器指纹特征 # stealth.min.js下载地址https://github.com/berstend/puppeteer-extra/tree/stealth-js with open(./stealth.min.js) as f:driver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument, {source: f.read()})driver.get(urlURL) # driver.get(urlhttps://bot.sannysoft.com/)# 保存图片 driver.save_screenshot(result.png)time.sleep(200) 3. undetected_chromedriver 这是一个防止浏览器指纹特征被识别的依赖库可以自动下载驱动配置再运行 项目地址https://github.com/ultrafunkamsterdam/undetected-chromedriver 首先我们安装依赖库 # 安装依赖 pip3 install undetected-chromedriver然后通过下面几行代码就能完美隐藏浏览器的指纹特征 from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service import time import undetected_chromedriver as ucchrome_options Options() # chrome_options.add_argument(--headless)s Service(rchromedriver.exe)driver uc.Chrome(services, optionschrome_options)driver.get(urlURL) # driver.get(urlhttps://bot.sannysoft.com/)driver.save_screenshot(result.png) time.sleep(100) 4. 操作已开启的浏览器 如何利用 Selenium 对已打开的浏览器进行爬虫 我们只需要通过命令行启动一个浏览器 import subprocess# 使用当前浏览器 # C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port9222 # 创建一个全新配置的浏览器, 一个文件夹只会创建一次 # C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port9222 --user-data-dir随便找个空文件夹路径cmd C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe --remote-debugging-port9222 --user-data-dirC:\\selenum\\user_data subprocess.run(cmd) 然后利用 Selenium 直接操作上面的浏览器即可模拟正常操作浏览器的行为 from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Optionschrome_options Options() chrome_options.add_experimental_option(debuggerAddress, 127.0.0.1:9222) # 注意我把chromedriver文件放到了当前文件夹里面所以可以这样调用 # 如果你是windows电脑你需要使用./chromedriver.exe driver Chrome(optionschrome_options)driver.get(http://exercise.kingname.info/exercise_login_success) input(输入任意内容继续) driver.get(https://www.kingname.info) input(输入任意内容继续) driver.get(http://exercise.kingname.info/exercise_login_success) 4. 常见的隐藏Selenium特征的方法 隐藏Selenium特征是实现自动化网页测试的关键。通过以下三种方法我们可以让浏览器看起来更像正常的用户避免被网站检测到并拒绝访问。综合下面的几种selenium特征隐藏方式以采集大众点评的评论为案例结合实际爬虫采集过程中需要使用的代理IP池提供如下demo 4.1 修改navigator.webdriver标志 navigator.webdriver是一个浏览器提供的属性用于表示浏览器是否由webdriver控制。默认情况下如果浏览器由Selenium驱动这个标志的值为true否则为false。我们可以通过execute_cdp_cmd命令来执行Google Chrome DevTools命令从而修改这个标志的值为false或者undefined以隐藏Selenium的特征。 4.2 改变user-agent user-agent是一个浏览器发送给网站的字符串用于表示浏览器的类型和版本。有些网站会根据user-agent来判断用户的设备和操作系统如果发现user-agent不符合正常的范围就会怀疑是Selenium驱动的浏览器。我们可以通过execute_cdp_cmd命令来设置Network.setUserAgentOverride参数从而改变user-agent为任意我们想要的值以隐藏Selenium的特征 enable-automation和useAutomationExtension是两个常见的Selenium相关开关它们会影响浏览器的行为和外观比如在浏览器窗口上显示“Chrome正在受到自动软件的控制”的提示。我们可以通过Chrome选项来添加或删除这些开关从而让浏览器看起来更像正常的浏览器以隐藏Selenium的特征。 4.3 排除或关闭一些Selenium相关的开关 enable-automation和useAutomationExtension是两个常见的Selenium相关开关它们会影响浏览器的行为和外观比如在浏览器窗口上显示“Chrome正在受到自动软件的控制”的提示。我们可以通过Chrome选项来添加或删除这些开关从而让浏览器看起来更像正常的浏览器以隐藏Selenium的特征。 4.4 代码展示 from selenium import webdriverfrom selenium.webdriver.common.proxy import Proxy, ProxyType# 亿牛云爬虫加强版代理IP 地址、端口号、用户名和密码proxy_address www.16yun.cnproxy_port 3100proxy_username 16YUNproxy_password 16IP# 设置Chrome选项包括隐藏Selenium特征、设置代理IP和排除或关闭一些Selenium相关开关options webdriver.ChromeOptions()options.add_argument(--disable-blink-featuresAutomationControlled)options.add_argument(--disable-extensions)options.add_argument(--disable-gpu)options.add_argument(--disable-infobars)options.add_argument(--disable-notifications)options.add_argument(--disable-popup-blocking)options.add_argument(--disable-web-security)options.add_argument(--ignore-certificate-errors)options.add_argument(--no-sandbox)options.add_argument(--start-maximized)options.add_argument(--user-data-dir/dev/null)options.add_argument(--proxy-server{}.format(proxy_address : proxy_port))options.add_argument(--proxy-auth{}:{}.format(proxy_username, proxy_password))options.add_experimental_option(excludeSwitches, [enable-automation, useAutomationExtension])# 初始化Chrome浏览器并使用上述选项driver webdriver.Chrome(optionsoptions)# 隐藏navigator.webdriver标志将其值修改为false或undefineddriver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument, {source: Object.defineProperty(navigator, webdriver, {get: () undefined})})# 设置user-agent改变user-agent的值user_agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36driver.execute_cdp_cmd(Network.setUserAgentOverride, {userAgent: user_agent})# 访问大众点评中商品的评论页面url https://www.dianping.com/shop/1234567/review_alldriver.get(url)# 在此处添加其他代码来执行您想要的任务 4.5 总结 此代码将使用Chrome浏览器并在启动浏览器时使用选项隐藏Selenium特征、设置用户名和密码方式的代理IP和排除或关闭一些Selenium相关开关。然后使用execute_cdp_cmd命令来执行Google Chrome DevTools协议中的命令将navigator.webdriver标志的值修改为false或undefined。使用execute_cdp_cmd命令来设置Network.setUserAgentOverride参数将user-agent更改为指定的user-agent字符串。最后访问大众点评中商品的评论页面并在此处添加其他代码来执行您想要的任务。
http://www.w-s-a.com/news/386010/

相关文章:

  • 那个网站是做房产中介的网站制作软件小学
  • 做网页怎么建站点视频解析网站
  • 做网站的系统设计网站设计论文前言
  • 做外贸网站多久更新汕头市建设局网站首页
  • 如何建设专业化的网站手机管理网站模板
  • 花生壳做网站如何用腾讯云做网站
  • 搭建集团网站开发app需要哪些软件
  • 网站建设 中企动力福州阀门wordpress 多说评论
  • php网站集成支付宝接口下载免费网络软件
  • 卡盟网站是怎么建设的用花生壳做网站速度可以吗
  • 杭州物联网前十名公司优秀seo平台
  • 网新中英企业网站管理系统wordpress 登录 缓存
  • wordpress模板建站教程wordpress添加广告位手机自适应
  • h5游戏平台入口优化是什么梗
  • 建设银行对公网站打不开网络推广活动方案主题和思路
  • 茶叶网站开发目的和意义网页设计需要考什么证
  • 高端企业网站建设公司怎么做实用性建设网站都需要哪些
  • 网站备案必须要幕布吗易企秀网站怎么做轮播图
  • 南昌网站排名优化四线城市网站建设方向及营利点
  • 做网站需要钱吗unity 做网站
  • 呼伦贝尔市规划建设局网站wordpress怎么考别人的
  • 免备案自助建站网站成都神速建站
  • 怎样编写app软件快速刷排名seo软件
  • 江苏做家纺的公司网站宣传型企业网站
  • 网站网上商城建设外国一些做环保袋的网站
  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销