使用python批量下载网络文件(python3+request)
问题描述:
给出系列URL地址(eg:“https://arxiv.org/pdf/1803.04831.pdf”,……)下载URL地址中的pdf文件。本例为下载AI相关论文。
问题解决:
1.引入依赖库
import requests
2.读取URL,并整理为list格式
urllist = ["https://arxiv.org/pdf/1408.5882.pdf",
"https://arxiv.org/pdf/1612.03144.pdf",
"https://arxiv.org/pdf/1703.06870.pdf"]`
3.加入头部,防止被封(如下载量超大情况下,还需要IP代理,但一般几十篇没啥问题)
headers = {'User-Agent': 'Mozilla/5.0'}
4.循环读取url,并以数据流形式分段存储,防止在文件过大情况下内存超压。在此1MB即存储1次。
for n,url in enumerate(urllist):
r = requests.get(url,headers=headers)
time.sleep(1)
with o