python - 尝试从网站获取文件,但延迟正在毁掉一切
问题描述
我试图获取一个 excel 文件,urllib
如下所示
import urllib.request as url
request = url.urlopen("url").geturl()
url.urlretrieve(request,"excelfile.xls")
但是,该 url 不是指向文件的直接链接,而是指向一个 html 页面,该页面会在一小段延迟后触发下载(没有任何重定向)。这会导致上述代码取而代之的是检索 html 文件。
我已经为此制定了一个临时解决方案,但它非常不可靠。见下文。
req1 = url.urlopen("url").geturl()
url.urlretrieve(req1,"excelfile.xls")
time.sleep(5)
req2 = url.urlopen("url").geturl()
url.urlretrieve(req2,"excelfile.xls")
time.sleep(5)
有时会弥补延迟并下载正确的文件。
有没有更可靠的方法来确保获得正确的文件?
我尝试过使用.info()
可能会尝试重试代码,直到我获得正确的文件,但是在尝试下面的代码时,打印的信息与来自urlretrieve
. 我可能用错了。
req1 = url.urlopen("url")
url.urlretrieve(req1.geturl(),"excelfile.xls")
info = req1.info()
print(info.get_content_type())
time.sleep(5)
req2 = url.urlopen("url")
url.urlretrieve(req2.geturl(),"excelfile.xls")
info = req2.info()
print(info.get_content_type())
有什么建议么?
可以在此处找到 Excel 文件的 url 。
解决方案
推荐阅读
- css - 如何禁用 Semantic-UI / Fomantic-UI 动态菜单/状态
- javascript - 现在在表单提交中调用函数
- .net - “Invoke-WebRequest:底层连接已关闭:意外错误
- python - 如何概括为数据框中的特定列编写的函数以在任何类似列上使用?
- python - 选择另一个项目然后搜索 Selenium (Python)
- reactjs - 调用另一个页面后如何在 React 中保留状态值
- stripe-payments - Stripe 更新客户付款方式
- python - 无法使用 Beautiful Soup 和 Selenium 遍历元素以刮取烂番茄评级数据
- c# - Xamarin 滑块:“值是最大值的无效值”(仅当导航离开页面时)
- spring - HttpServletRequest 中的最大参数个数