如何在Python中让请求等待302重定向完成?
我对网络抓取还不熟悉,我正试图从网站上获取一些数据,但当你进入它时,会有一个等待队列(当我在真正的浏览器中尝试时,可能会等待15秒),这是另一个url 在Python中使用请求时,我永远不会被重定向到真正的url,即使它是302重定向(应该是临时的) 使用此代码:如何在Python中让请求等待302重定向完成?,python,http,python-requests,http-status-code-302,Python,Http,Python Requests,Http Status Code 302,我对网络抓取还不熟悉,我正试图从网站上获取一些数据,但当你进入它时,会有一个等待队列(当我在真正的浏览器中尝试时,可能会等待15秒),这是另一个url 在Python中使用请求时,我永远不会被重定向到真正的url,即使它是302重定向(应该是临时的) 使用此代码: s = requests.Session() r = s.get(store, allow_redirects=True, headers=headers) print(r.status_code) print(r.history)
s = requests.Session()
r = s.get(store, allow_redirects=True, headers=headers)
print(r.status_code)
print(r.history)
我得到:
200
[<Response [302]>]
200
[]
如果我把allow\u redirects=False
,我只会得到一个空页面。
在使用bs4获取所需数据之前,如何等待等待队列完成并将我重定向到真实站点
我试图每x秒将其插入一个循环中检查
r.url
,但它从未改变。还尝试每x秒获取一次,但结果相同。似乎,响应包含一个执行重定向操作的javascript。。。
所以可能需要从r.text读取重定向url,您是否尝试过s.get(store,allow\u redirects=True,timeout=None)
?我刚刚做了,它没有改变任何东西,在等待队列中仍然被阻止。使用tcpdump来找出浏览器有什么不同之处,我刚刚添加了我在这里使用的headers参数,get
不是应该遵循我的浏览器的操作吗?请检查以下输出:r=s.get(store,allow\u redirects=False)print(r.status\u code)print(r.text)
r.text只包含等待队列的url,如:Object moved Object moved to代码>那么,你能试着从一个标签(使用BeautifulSoup)中获取这个“地址”,然后请求它吗