Python中如何解决requests库获取不到信息的问题

小弟不才,请大佬给与指点一下: 浏览器直接访问: https://yunbi.com//api/v2/tickers.json 可以得到数据 h=requests.get('https://yunbi.com//api/v2/tickers.json') print h.text

却无法看到数据。 请问该如何获取里面的数据呢? 感谢


Python中如何解决requests库获取不到信息的问题

7 回复

你再试试吧。我怎么试了完全没问题


遇到requests拿不到数据,先别急着怀疑人生,多半是请求本身有问题。直接上代码,咱们一步步拆解排查。

1. 先来个基础检查,带上头部信息 很多网站会屏蔽没有User-Agent的请求,直接返回空或者错误页面。

import requests

url = 'https://httpbin.org/user-agent'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
try:
    response = requests.get(url, headers=headers, timeout=10)
    response.raise_for_status()  # 检查HTTP错误
    print(f"状态码: {response.status_code}")
    print(f"响应内容: {response.text[:500]}")  # 只打印前500字符
except requests.exceptions.RequestException as e:
    print(f"请求失败: {e}")

2. 如果状态码是4xx/5xx,得看具体原因

if response.status_code == 403:
    print("被拒绝了,可能需要处理反爬")
elif response.status_code == 404:
    print("地址不对,检查URL")
elif response.status_code == 429:
    print("请求太频繁,得加延时")

3. 有些网站需要会话维持(比如登录状态)

session = requests.Session()
# 先登录(如果需要)
login_data = {'username': 'xxx', 'password': 'xxx'}
session.post('https://example.com/login', data=login_data)
# 再用同一个session请求
resp = session.get('https://example.com/protected-page')

4. 如果是动态加载的内容,requests可能拿不到 这时候得用selenium或者找接口。按F12打开开发者工具,到Network标签页看XHR/Fetch请求,直接模拟那个接口调用。

5. 终极调试大法:把请求的所有细节打印出来

import logging
import http.client
http.client.HTTPConnection.debuglevel = 1
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

# 现在再发请求,会看到完整的HTTP交互过程

总结:先加headers,看状态码,保持会话,不行就换工具。

没问题 +1

没问题+2

是否是 requests 库版本问题…?

没问题+3,

没问题+4

Python 2.7.13
Requests 2.13.0

回到顶部