作者kogrant (詹姆士汪)
看板Python
标题[问题] 如何绕过强制以浏览器打开另存新档视窗?
时间Sat May 5 20:18:32 2018
在下是python 初学者,想要用程式下载特定网址的档案
但是下载网址的形式是
http://www.example.com/{DATE}/CSV
用了各种方法仍然无法下载档案
後来查了收到 http 网址的 Response header时
内有 application/force-download 指令强制以浏览器打开另存新档视窗
似乎是这个理由导致无法下载档案
请问各位先进应如何跳过这个步骤将档案存入特定路径?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.9.72
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1525522714.A.C35.html
1F:→ kenduest: 也没有实际的网站,也没任何程式码,这怎麽抓问题? 05/05 23:33
2F:推 groovy2016: wget? 05/06 00:32
3F:→ s860134: 不敢贴连结 1定4抓迷片! 05/06 07:20
谜片网址长这样(警察杯杯不要抓我):
http://cems.ilepb.gov.tw/OpenData/API/Daily/G3200778/P101/20151201/Csv
楼下 J大提到浏览器的问题在浏览器解决
但因为我想要下载数年份的资料,不想要一个一个点另存新档到手软
才想要询问看看有无程式码可以解决这个问题?
4F:→ justoncetime: 浏览器的问题在浏览器解决不就好了? 05/06 10:03
※ 编辑: kogrant (223.140.7.93), 05/06/2018 11:18:14
※ 编辑: kogrant (223.140.7.93), 05/06/2018 11:20:52
5F:推 Sunal: import requests 05/06 11:38
6F:→ Sunal: res = requests.get(URL) ............. 05/06 11:39
7F:推 s860134: 嘎理共,这个最简单了,这个网址没有任何来源检查机制 05/06 12:32
8F:→ s860134: 也就是说你直接把他当档案网址抓下来即可 05/06 12:33
9F:→ s860134: 如果你真得想要"浏览器的问题在浏览器解决" 05/06 12:38
10F:→ s860134: 这也很简单 你只要先设定一个使用者设定 05/06 12:39
12F:→ s860134: 之後你点开那个网页他就自动载到你设好的路径 05/06 12:39
谢谢楼上各位大大的指引
刚才自己再执行一遍下列程式码,发现其实网页有回传资料,
只是自己还不懂如何把档案写入指定资料夹,才会以为没有接收到资料的误会
import requests # 使用 GET 方式下载普通网页
r = requests.get('url')
#印出回传 respone package 内容,5/6新增
print(r.content)
※ 编辑: kogrant (223.140.7.93), 05/06/2018 20:11:29
14F:→ virginbear: 最近刚好遇到这问题,感谢 05/09 04:18