我最近一直在尝试使用Python中的request模块进行网络抓取,并且对网站何时自动刷新有疑问。例如,如果我向网站发送了一个请求并且由于该网站有太多人试图一次访问它而不得不排队,那么请求会话最终将如何重定向到该网站?
我可以做类似的事情吗?
import requests, time
s = requests.Session()
r = s.get('www.example.com')
passed = 0
while passed == 0:
if 'passed' in r.text:
print('passed queue!')
passed = 1
else:
print('still in queue')
time.sleep(60)
或者我是否必须执行另一个GET请求才能确定是否通过了队列并执行以下操作:
import requests, time
s = requests.Session()
r = s.get('http://www.example.com')
passed = 0
while passed == 0:
if 'passed' in r.text:
print('passed queue!')
passed = 1
else:
print('still in queue')
time.sleep(60)
r = s.get('http://www.example.com')
答案 0 :(得分:2)
除了处理Location
标头以进行重定向外,请求不会解释响应。如果页面使用<meta>
标记或JavaScript来执行刷新,则必须进行处理。
如果您想以速度和更高的资源利用率作为真实的浏览器,请使用Selenium之类的无头浏览器。