学习常见的反爬虫手段,如验证码、限制访问频率等

  1. 验证码(CAPTCHA):用于识别机器人和自动化程序,可以通过以下方式实现:

    from PIL import Image
    import pytesseract

    读取验证码图片

    image = Image.open('captcha.png')

    使用pytesseract库进行验证码识别

    text = pytesseract.image_to_string(image)
    print(text)

  2. IP限制/访问频率限制:限制同一个IP地址或者同一个用户在一定时间内的请求次数,可以通过以下方式实现:

    import time

    限制每分钟最多5次请求

    MAX_REQUESTS_PER_MINUTE = 5

    获取当前时间戳

    current_time = time.time()

    判断该IP地址或用户在一分钟内的请求次数是否超过限制

    if redis_client.get(ip_address_or_user):
    num_requests = int(redis_client.get(ip_address_or_user))
    if num_requests >= MAX_REQUESTS_PER_MINUTE:
    return '请求超过限制'
    else:
    redis_client.set(ip_address_or_user, num_requests + 1, ex=60)
    else:
    redis_client.set(ip_address_or_user, 1, ex=60)

  3. User-Agent检测:判断请求中的User-Agent头部信息是否符合正常浏览器的标准,可以使用以下代码示例:

    import requests

    发起HTTP请求时设置User-Agent头部信息

    headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64) AppleWebkit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'
    }

    发起请求

    response = requests.get(url, headers=headers)

  4. 动态加载数据:一些网站会使用JavaScript动态加载数据,可以使用Selenium或者Pyppeteer等自动化工具模拟用户操作来获取数据。示例代码如下:

    from selenium import webdriver

    使用Chrome浏览器驱动

    driver = webdriver.Chrome()

    打开网页

    driver.get(url)

    等待动态加载完成

    time.sleep(5)

    获取动态加载的数据

    data = driver.page_source

    关闭浏览器驱动

    driver.quit()

需要注意,使用反爬手段要遵守网站的规则和法律法规,不得进行非法活动。

本文由mdnice多平台发布

相关推荐
郝学胜-神的一滴4 小时前
Effective Python 条款4:字符串格式化大乱斗
开发语言·网络·python·程序人生·软件工程
ynchyong5 小时前
Python 字符组合生成器:product 与 permutations 的实战对比
python·工具·字符串生产
benchmark_cc5 小时前
1000只ETF的5分钟K线如何批量获取?QuantDash分页策略与高性能Python实践
开发语言·人工智能·爬虫·python·算法·quantdash·量化数据源
sel_95 小时前
【PEFT】参数高效微调(PEFT)技术详解:从原理到 LoRA/QLoRA 实战
人工智能·python·深度学习·算法·机器学习·参数高效微调
月光船幽幽5 小时前
带刺反馈引擎:唤醒深层意图
人工智能·python
大模型码小白6 小时前
AI 提示词专栏:使用系统指令(System Prompt)实现全局约束
java·大数据·运维·开发语言·人工智能·python·prompt
烂蜻蜓6 小时前
Flask入门教程(八):视图函数详解——请求处理与响应的核心
后端·python·flask
河南凹凸环境艺术设计6 小时前
民宿酒店设计实力公司
大数据·人工智能·python
小江的记录本6 小时前
【AI Agent】《2026年9月 AI Agent全栈开发技术选型专项面试宝典》
java·spring boot·python·spring·ai·面试·ai编程
春涧草茶7 小时前
慢就是快-11-1数据容器 | 列表
python