我正在尝试使用python请求模块和beautifulsoup4从网站上下载文件,但是问题是您必须等待5秒钟才能出现下载按钮。
我尝试使用requests.get('URL')
来获取页面,然后使用beautifulsoup4
进行解析以获取下载链接,但是问题是您必须等待5秒钟(如果要使用实际的浏览器)以使按钮出现,因此当我将URL传递到requests.get()
时,初始响应对象没有按钮元素,因此我在google上搜索了很多内容,但找不到任何对我有帮助的结果。
有没有一种方法可以“刷新”响应对象?或“等待”?是要在五秒钟后更新其内容,就像使用浏览器打开它一样?
我认为请求模块不可能做到这一点。我该怎么办?
我正在运行Windows10 64x
我是新来的,如果格式不好,抱歉。 :(
答案 0 :(得分:0)
HTTP是无状态的,每个新请求都与先前的请求不同。我们通常在Cookie,浏览器指令等中实现状态。作为普通的HTTP客户端,requests
无法刷新一个请求,下一个请求将是一个完全新的请求。
您正在寻找的是一些了解JavaScript并可以自动处理页面更新的客户端。我建议您看看selenium
可以实现浏览器自动化。
答案 1 :(得分:0)
尝试这样的事情,
driver.get("http://somedomain/url_that_delays_loading")
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
finally:
driver.quit()