Python爬虫小技巧:如何通过修改referer绕开访问控制
有修改 UA 为搜索引擎蜘蛛的,但是这招越不越不管用,因为这积累一阵日志后就较容易判定出来真实蜘蛛 IP。
另外有个 修改 referer 取巧的方法,https://www.yuanrenxue.com/crawler/crawler-tricks-2.html
Python爬虫小技巧:如何通过修改referer绕开访问控制
谢谢楼主无私分享
import requests
# 目标网站
url = 'https://example.com/protected-page'
# 设置headers,重点修改Referer字段
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': 'https://example.com/', # 伪装成从该站内页面跳转而来
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
}
try:
response = requests.get(url, headers=headers, timeout=10)
if response.status_code == 200:
print("成功访问页面")
# 处理响应内容
print(response.text[:500]) # 打印前500字符
else:
print(f"访问失败,状态码: {response.status_code}")
except requests.exceptions.RequestException as e:
print(f"请求出错: {e}")
# 更完整的示例:模拟从搜索引擎跳转
def crawl_with_referer(url, referer_url):
"""使用指定Referer访问页面"""
session = requests.Session()
# 设置完整的headers
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': referer_url,
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'DNT': '1',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
}
# 可以添加cookies使请求更真实
session.headers.update(headers)
try:
resp = session.get(url, timeout=15)
return resp
except Exception as e:
print(f"请求失败: {e}")
return None
# 使用示例
if __name__ == '__main__':
# 伪装成从Google搜索跳转
result = crawl_with_referer(
'https://example.com/data',
'https://www.google.com/'
)
if result and result.status_code == 200:
print("伪装Referer访问成功")
核心原理:Referer是HTTP请求头的一部分,告诉服务器当前请求是从哪个页面链接过来的。有些网站会检查这个字段,只允许从特定来源的访问。通过修改Referer为网站信任的域名(如站内页面、搜索引擎等),可以绕过这种基础的反爬机制。
常用伪装策略:
- 设为目标网站的主域名或站内页面URL
- 设为空字符串(有些网站允许无Referer访问)
- 设为常见的搜索引擎域名(如google.com、baidu.com)
- 设为同域名下的其他页面
注意:这只是基础反爬手段之一,现代网站通常结合更多验证方式。
爬虫怎么入门呢。
这不是基本操作吗
多谢
Python requests 库用起来就入门了
厉害了,老哥。我爬虫被封禁了好几天,用这招解决了。
你不是我的托吧, 老哥?
真不是,老哥。正好看到了这篇文章,然后就试了下,完美解决。
所以怎么修改 referer
修改 referer 确实是常规操作
需要用户权限的访问的网页也可以通过这个方法访问么
老实说修改 referer 不是常识么…
上面说用这招解决了问题的,只能说连入门都还没有入门
知道了 准备堵
专门有 fake 库循环就完事了
那个不能生成 referer
没法的
感觉像是在逛博客评论区
楼主既然是来 v 站引流的,至少得放个摘要吧
很好
古德
我也不是,但是就是比你厉害,咋滴?看不惯就 block
碰到验证码、甚至还会判断 selenium 行为的网站……只好流下没技术的泪水。
没地方找优越感了?

