您的位置:首页 > 娱乐 > 明星 > 科技馆有什么展品_佛山cms模板建站_神马网站快速排名软件_中国十大网络销售公司

科技馆有什么展品_佛山cms模板建站_神马网站快速排名软件_中国十大网络销售公司

2025/5/3 22:21:00 来源:https://blog.csdn.net/Meggie35/article/details/147118683  浏览:    关键词:科技馆有什么展品_佛山cms模板建站_神马网站快速排名软件_中国十大网络销售公司
科技馆有什么展品_佛山cms模板建站_神马网站快速排名软件_中国十大网络销售公司

selenium 防检测策略的方法汇总:

  1. 合理设置延迟:请求间添加随机延迟 (2-10秒)

  2. 限制爬取频率:控制每小时/每天的请求量

  3. 轮换用户代理:准备至少10个不同的User-Agent

  4. 使用住宅代理:优先选择高质量的住宅代理IP

  5. 处理验证码:集成2Captcha或Anti-Captcha服务

  6. 定期更新工具:保持selenium和浏览器驱动最新版本

1. 基础防检测配置

from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef get_stealth_driver():options = Options()# 基本防检测设置options.add_argument("--disable-blink-features=AutomationControlled")options.add_experimental_option("excludeSwitches", ["enable-automation"])options.add_experimental_option("useAutomationExtension", False)# 禁用自动化控制标志options.add_argument("--disable-infobars")options.add_argument("--disable-dev-shm-usage")options.add_argument("--no-sandbox")# 随机用户代理user_agents = ["Mozilla/5.0 (Windows NT 10.0; Win64; x64)...","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)..."]import randomoptions.add_argument(f"user-agent={random.choice(user_agents)}")driver = webdriver.Chrome(options=options)# 修改navigator.webdriver属性driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})return driver

2. 高级防检测技术

2.1 使用 undetected-chromedriver

import undetected_chromedriver as ucdef get_undetected_driver():options = uc.ChromeOptions()# 配置选项options.add_argument("--disable-popup-blocking")options.add_argument("--disable-notifications")# 随机窗口大小import randomwidth = random.randint(1000, 1400)height = random.randint(700, 900)options.add_argument(f"--window-size={width},{height}")driver = uc.Chrome(options=options,version_main=114,  # 匹配你的Chrome版本headless=False,use_subprocess=True)return driver

2.2 模拟人类行为模式

from selenium.webdriver.common.action_chains import ActionChains
import time
import randomdef human_like_behavior(driver, element=None):"""模拟人类操作行为"""actions = ActionChains(driver)# 随机鼠标移动if element:actions.move_to_element(element)else:x = random.randint(0, 500)y = random.randint(0, 500)actions.move_by_offset(x, y)# 随机延迟time.sleep(random.uniform(0.5, 2.5))# 随机滚动scroll_amount = random.randint(200, 800)driver.execute_script(f"window.scrollBy(0, {scroll_amount})")time.sleep(random.uniform(0.3, 1.8))actions.perform()

3. 完整防检测爬取流程

def stealth_scrape(url):try:# 使用undetected-chromedriverdriver = get_undetected_driver()# 访问目标URLdriver.get(url)# 随机等待time.sleep(random.uniform(2, 5))# 模拟人类浏览行为human_like_behavior(driver)# 执行实际爬取操作# 示例:获取页面标题title = driver.titleprint(f"成功获取页面标题: {title}")# 更多爬取逻辑...except Exception as e:print(f"爬取过程中发生错误: {str(e)}")finally:driver.quit()
# 使用示例
stealth_scrape("https://example.com")

4. 额外防护措施

4.1 代理IP轮换

proxies = ["123.45.67.89:8080","98.76.54.32:3128"
] #换成自己的def get_proxy_driver():options = uc.ChromeOptions()proxy = random.choice(proxies)options.add_argument(f"--proxy-server=http://{proxy}")return uc.Chrome(options=options)

4.2 指纹混淆

def modify_fingerprint(driver):# 修改屏幕分辨率driver.execute_script("Object.defineProperty(screen, 'width', {get: () => 1920});""Object.defineProperty(screen, 'height', {get: () => 1080});")# 修改时区driver.execute_cdp_cmd("Emulation.setTimezoneOverride",{"timezoneId": "America/New_York"})# 修改WebGL指纹driver.execute_script("const getParameter = WebGLRenderingContext.prototype.getParameter;""WebGLRenderingContext.prototype.getParameter = function(parameter) {""  if (parameter === 37445) { return 'NVIDIA Corporation'; }""  return getParameter.call(this, parameter);""};")

5. 检测与验证

def test_stealth(driver):test_urls = ["https://bot.sannysoft.com","https://arh.antoinevastel.com/bots/areyouheadless"]for url in test_urls:driver.get(url)time.sleep(3)driver.save_screenshot(f"stealth_test_{url.split('/')[-1]}.png")print(f"测试结果已保存: stealth_test_{url.split('/')[-1]}.png")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com