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

IP被拉黑后如何使用Python爬取目标网站?

搞定爬虫IP被拉黑+公开代理无效的难题

嘿,我之前爬某网站时也碰到过完全一样的情况!核心问题就是你的原生IP已经被目标网站封禁了,而公开代理池里的IP大多是被无数爬虫滥用过的,早就被网站加入黑名单了——但HidemyIP这类工具用的是高匿、没被污染的代理,所以能正常访问。给你几个落地的解决办法:


1. 用和HidemyIP同梯队的靠谱代理服务

既然HidemyIP能打通,说明这类付费高匿代理/住宅代理是目标网站认可的。你可以:

  • 去查HidemyIP有没有官方API,直接调用它的接口获取实时可用的代理IP,然后塞进requests里用
  • 换其他主流的付费代理服务(比如住宅代理,这类IP和真实用户的IP几乎无差别,很难被反爬检测)

2. 补全你的requests代理配置细节

你原来的代码可能漏了关键的伪装和代理校验,试试我这个调整后的版本:

import requests
from bs4 import BeautifulSoup
import random
import time

# 替换成你从靠谱代理服务拿到的有效IP(有账号密码的话,格式是 http://user:pass@ip:port)
proxies = {
    "http": "http://valid-proxy-ip:port",
    "https": "https://valid-proxy-ip:port"
}

# 必须加真实浏览器的请求头,不然一请求就被识别成爬虫
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
    "Connection": "keep-alive"
}

try:
    # 每次请求前加个随机延迟,模拟人类浏览速度
    time.sleep(random.uniform(1.5, 3.5))
    # 带代理、请求头和超时发送请求
    response = requests.get("https://your-target-site.com", proxies=proxies, headers=headers, timeout=12)
    # 主动抛出HTTP错误(比如403、500),方便排查问题
    response.raise_for_status()
    soup = BeautifulSoup(response.text, "html.parser")
    # 接下来就正常提取你要的数据啦
    print("请求成功!开始解析数据...")
except requests.exceptions.RequestException as e:
    print(f"请求炸了:{str(e)}")

3. 额外的反爬小技巧

光靠代理还不够,配合这些操作能大幅降低被封的概率:

  • 每次请求换一个代理IP(靠谱的代理服务都支持IP池自动轮换)
  • 用浏览器(开HidemyIP)先访问目标网站,把Cookie复制出来,在requests里带上cookies参数,模拟已登录状态
  • 避免短时间内发送大量请求,严格控制请求频率

最后提醒一句:别抱着“免费代理能用”的侥幸心理,免费的基本都是垃圾,浪费时间还容易把代理IP也搞被封。花点小钱整个靠谱的代理服务,效率能提升N倍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:08:27