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

Urllib爬取同域名多页面内容重复,疑似被识别为机器人求助

解决方法:通过Requests添加请求头伪装浏览器

你遇到的问题是典型的反爬机制——服务器通过检查请求的User-Agent等头部信息,识别出你的请求来自脚本而非真实浏览器,于是返回了重复的第一页内容。用requests库可以很方便地自定义请求头,绕过这个检测。

步骤1:安装Requests(如果还没装)

如果你的环境里没有requests,先通过pip安装:

pip install requests

步骤2:自定义请求头,模拟真实浏览器请求

你需要给请求加上常见的浏览器请求头,比如User-Agent、Accept-Language等,让服务器认为你是真实用户。示例代码如下:

import requests

# 定义请求头,这里用Chrome浏览器的示例UA,你也可以换成自己浏览器的UA
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
}

# 爬取第一页
response_1 = requests.get(url_1, headers=headers)
html_1 = response_1.text  # 或者用response_1.content获取二进制内容

# 爬取第三页
response_2 = requests.get(url_2, headers=headers)
html_2 = response_2.text

# 可以先打印状态码确认请求是否成功(200表示成功)
print(response_1.status_code)
print(response_2.status_code)

额外注意事项

  • 如果还是不行,可以尝试添加更多请求头字段,比如Referer(表示你是从哪个页面跳转过来的),或者设置cookies(有些网站需要cookie验证)。
  • 不要频繁请求,避免触发更严格的反爬(比如IP封禁),可以在请求之间加短暂的延迟:
import time
time.sleep(2)  # 每次请求后暂停2秒
  • 检查URL是否正确:有时候分页参数可能不是直接在URL里的数字,比如有些网站用page=3但你可能写错了参数名,先确认url_2确实是第三页的正确链接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:11:19