You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Selenium爬取法国网站leboncoin.fr时持续遭遇验证码拦截的解决方案咨询

解决leboncoin.fr验证码拦截的方案

我完全懂这种反复被验证码卡着的挫败感——leboncoin的反爬机制确实挺严格的,尤其是对自动化工具的检测。你试过的基础Selenium伪装只是第一步,咱们可以从几个方向优化,或者换用更隐蔽的工具:

一、强化Selenium的用户伪装与行为模拟

你现有的ChromeOptions设置还不够全面,加上这些参数能大幅降低被识别为爬虫的概率,同时模拟真实用户的操作节奏:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import random

options = webdriver.ChromeOptions()
# 基础伪装
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
# 新增关键伪装参数
options.add_argument("--disable-blink-features=AutomationControlled")  # 禁用自动化检测标志
options.add_argument(f"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{random.randint(90, 110)}.0.0.0 Safari/537.36")  # 随机生成UA
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
options.add_argument("--disable-gpu")

driver = webdriver.Chrome(options=options)
# 模拟真实用户的缓慢操作流程
driver.get('https://www.leboncoin.fr/')
time.sleep(random.uniform(2, 5))  # 随机停顿2-5秒,模拟浏览
# 滚动页面
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(random.uniform(1, 3))
# 尝试点击一个无关元素(比如页脚链接)增加真实感
try:
    footer_link = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "footer a"))
    )
    footer_link.click()
    time.sleep(random.uniform(2, 4))
    driver.back()
except Exception as e:
    print(f"模拟点击失败: {e}")

二、使用住宅代理IP

单一IP频繁访问很容易被leboncoin标记为异常流量,建议使用法国地区的住宅代理(住宅代理的IP来自真实用户设备,比数据中心代理更难被检测)。每次请求切换不同的IP,同时确保代理的延迟低,避免触发反爬机制。

三、换用Playwright替代Selenium

Playwright是微软推出的自动化工具,默认的伪装性比Selenium好很多,它会自动模拟真实浏览器的行为,不容易被检测到。简单示例:

from playwright.sync_api import sync_playwright
import random
import time

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    # 创建浏览器上下文,自定义UA
    context = browser.new_context(
        user_agent=f"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/{random.randint(90, 110)}.0.0.0 Safari/537.36"
    )
    page = context.new_page()
    page.goto("https://www.leboncoin.fr/")
    time.sleep(random.uniform(2, 5))
    # 模拟滚动
    page.evaluate("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(random.uniform(1, 3))
    # 后续爬取操作...
    browser.close()

四、利用已登录的Cookie

手动在浏览器中登录leboncoin并完成一次验证码验证后,保存浏览器的Cookie,之后在爬虫中加载这些Cookie,模拟已登录状态,能大幅减少验证码的触发频率:

import json

# 第一步:手动登录后,保存Cookie到文件
# driver = webdriver.Chrome(options=options)
# driver.get('https://www.leboncoin.fr/')
# # 手动完成登录和验证码验证
# cookies = driver.get_cookies()
# with open("leboncoin_cookies.json", "w") as f:
#     json.dump(cookies, f)

# 第二步:爬虫加载Cookie
driver.get('https://www.leboncoin.fr/')
with open("leboncoin_cookies.json", "r") as f:
    cookies = json.load(f)
for cookie in cookies:
    driver.add_cookie(cookie)
driver.refresh()  # 刷新后即可保持登录状态

五、合规提示

最后要提醒你:爬取leboncoin前一定要仔细阅读它的服务条款和robots.txt,避免爬取受保护的数据或超出合理范围的请求,否则可能面临法律风险。

内容的提问来源于stack exchange,提问作者Thirsty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 01:18:15