我正在练习抓取以下载文件。
我正在抓取一个网站。
http://www.hanaif.re.kr/kor/jsp/board/board.jsp?sa=ci&bid=90&pg=1&no=32919
我查看了这个公告板的html代码。
我找到了这个。
<a href="JavaScript:downloadClick( '부채보유_가구의_재무상황_점검_및_시사점(2016가금복).pdf', '20170201141002555_5623' )" title="부채보유_가구의_재무상황_점검_및_시사점(2016가금복).pdf">부채보유_가구의_재무상황_점검_및_시사점...</a>
由于试图找到下载网址,我找到了这种类型的地址。
http://www.hanaif.re.kr/kor/jsp/board/include/download.jsp?realFileName=' + (realFileName) + '&fileName=' + (fileName)
编码后,我的程序输出此结果。
http://www.hanaif.re.kr/kor/jsp/board/include/download.jsp?realFileName=20170201141002555_5623&fileName=부채보유_가구의_재무상황_점검_및_시사점(2016가금복).pdf
文件下载得很好。
但是,
http://www.hanaif.re.kr/kor/jsp/board/board.jsp?sa=ci&bid=42&pg=32&no=17050
这是同一公告栏上的另一篇文章。
这个的html代码如下。
<a href="JavaScript:downloadClick( 'IMF 10년의 회고와 시사점.pdf', 'IMF 10년의 회고와 시사점.pdf' )" title="IMF 10년의 회고와 시사점.pdf">IMF 10년의 회고와 시사점.pdf</a>
同样,我的程序会输出以下结果。
http://www.hanaif.re.kr/kor/jsp/board/include/download.jsp?realFileName=IMF 10년의 회고와 시사점.pdf&fileName=IMF 10년의 회고와 시사점.pdf
但是,我无法下载该文件。
更准确地说,可以通过网址下载文件。
但是,无法加载文档。
有什么问题?
另外,有没有办法从JavaScript实现的网站轻松获取文件下载URL?
答案 0 :(得分:1)
import requests
payload = {'fileName': 'IMF 10년의 회고와 시사점.pdf',
'path': '/kor/jsp/board/include/download.jsp',
'realFileName': 'IMF 10년의 회고와 시사점.pdf'}
r = requests.post('http://www.hanaif.re.kr/kor/jsp/board/include/download.jsp', data=payload, stream=True )
filename = payload['fileName']
with open(filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
f.write(chunk)