ash*_*ets -1 python python-requests
我正在尝试使用requests并bs4从网站获取信息,但收到状态代码 304 并且没有来自request.get(). 我已经阅读并了解此代码表明资源已在我的缓存中。我如何从我的缓存访问资源,或者最好清除我的缓存以便我可以接收新资源?
我试过添加以下标题:headers={'Cache-Control': 'no-cache'}到requests.get()但仍然有同样的问题。
此外,我已经研究了该requests-cache模块,但不清楚如何或是否可以使用它来解决问题。
代码:
import requests
r = requests.get('https://smsreceivefree.com/')
print(r.status_code)
print(r.content)
Run Code Online (Sandbox Code Playgroud)
输出:
304
b''
Run Code Online (Sandbox Code Playgroud)
如果客户端发送了条件请求,例如具有标头的请求,则服务器应发送304 Not Modified回复If-Modified-Since。如果客户端已经拥有页面的缓存版本,并且希望避免下载已经拥有最新版本的内容,那么这是有道理的。
在这种情况下,该网站似乎向某些类型的客户端发送了 304,看起来像:User-Agent 似乎表明自动化的那些客户端(在您的情况下是这样)。
服务器应该改为发送 4xx 错误代码,可能是403 Forbidden,但可能使用 304 以将机器人编写者偏离正确的轨道并使他们进入 StackOverflow。
| 归档时间: |
|
| 查看次数: |
2693 次 |
| 最近记录: |