用python爬虫批量下载pdf
来源:互联网 发布:淘宝店铺装修模板复制 编辑:程序博客网 时间:2024/05/16 14:05
今天遇到一个任务,给一个excel文件,里面有500多个pdf文件的下载链接,需要把这些文件全部下载下来。我知道用python爬虫可以批量下载,不过之前没有接触过。今天下午找了下资料,终于成功搞定,免去了手动下载的烦恼。
我参考了以下资料,这对我很有帮助:
1、廖雪峰python教程
2、用Python 爬虫批量下载PDF文档 http://blog.csdn.net/u012705410/article/details/47708031
3、用Python 爬虫爬取贴吧图片 http://blog.csdn.net/u012705410/article/details/47685417
4、Python爬虫学习系列教程 http://cuiqingcai.com/1052.html
由于我搭建的python版本是3.5,我学习了上面列举的参考文献2中的代码,这里的版本为2.7,有些语法已经不适用了。我修正了部分语法,如下:
# coding = UTF-8# 爬取李东风PDF文档,网址:http://www.math.pku.edu.cn/teachers/lidf/docs/textrick/index.htmimport urllib.requestimport reimport os# open the url and readdef getHtml(url): page = urllib.request.urlopen(url) html = page.read() page.close() return html# compile the regular expressions and find# all stuff we needdef getUrl(html): reg = r'(?:href|HREF)="?((?:http://)?.+?\.pdf)' url_re = re.compile(reg) url_lst = url_re.findall(html.decode('gb2312')) return(url_lst)def getFile(url): file_name = url.split('/')[-1] u = urllib.request.urlopen(url) f = open(file_name, 'wb') block_sz = 8192 while True: buffer = u.read(block_sz) if not buffer: break f.write(buffer) f.close() print ("Sucessful to download" + " " + file_name)root_url = 'http://www.math.pku.edu.cn/teachers/lidf/docs/textrick/'raw_url = 'http://www.math.pku.edu.cn/teachers/lidf/docs/textrick/index.htm'html = getHtml(raw_url)url_lst = getUrl(html)os.mkdir('ldf_download')os.chdir(os.path.join(os.getcwd(), 'ldf_download'))for url in url_lst[:]: url = root_url + url getFile(url)
上面这个例子是个很好的模板。当然,上面的还不适用于我的情况,我的做法是:先把地址写到了html文件中,然后对正则匹配部分做了些修改,我需要匹配的地址都是这样的,http://pm.zjsti.gov.cn/tempublicfiles/G176200001/G176200001.pdf
。改进后的代码如下:
# coding = UTF-8# 爬取自己编写的html链接中的PDF文档,网址:file:///E:/ZjuTH/Documents/pythonCode/pythontest.htmlimport urllib.requestimport reimport os# open the url and readdef getHtml(url): page = urllib.request.urlopen(url) html = page.read() page.close() return html# compile the regular expressions and find# all stuff we needdef getUrl(html): reg = r'([A-Z]\d+)' #匹配了G176200001 url_re = re.compile(reg) url_lst = url_re.findall(html.decode('UTF-8')) #返回匹配的数组 return(url_lst)def getFile(url): file_name = url.split('/')[-1] u = urllib.request.urlopen(url) f = open(file_name, 'wb') block_sz = 8192 while True: buffer = u.read(block_sz) if not buffer: break f.write(buffer) f.close() print ("Sucessful to download" + " " + file_name)root_url = 'http://pm.zjsti.gov.cn/tempublicfiles/' #下载地址中相同的部分raw_url = 'file:///E:/ZjuTH/Documents/pythonCode/pythontest.html'html = getHtml(raw_url)url_lst = getUrl(html)os.mkdir('pdf_download')os.chdir(os.path.join(os.getcwd(), 'pdf_download'))for url in url_lst[:]: url = root_url + url+'/'+url+'.pdf' #形成完整的下载地址 getFile(url)
这就轻松搞定啦。
阅读全文
2 0
- 用Python 爬虫批量下载PDF文档
- 用python爬虫批量下载pdf
- python 爬虫批量下载图片
- 一个下载pdf的简单python爬虫
- 【Python】网络爬虫-批量下载图片
- 用Java批量下载PDF
- (9)Python爬虫——下载PDF
- python对于已知文件名进行pdf批量下载
- Python 3 爬虫之批量下载字帖图片
- 用PYTHON批量將PDF保存為圖片
- 用python批量下载图片
- 用python批量下载图片
- 从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载
- python爬虫:批量刷新网页
- Python爬虫-用迅雷下载电影
- 用python写网络爬虫-下载网页
- 《Python教程》pdf下载
- python PDF 下载
- Centos环境下yum安装更新jdk、删除自带的jdk
- Prototype功能预览二:两个注解实现数据库批处理
- mac安装YouCompleteMe
- ACM暑假训练 问题 G: Balanced Photo (树状数组优化)
- 阶乘之和
- 用python爬虫批量下载pdf
- 多线程和异步
- Project **** is not configured as a MyEclipse Web-Struts Project.
- PAT乙级 1002. 写出这个数 (20)
- 桥接模式
- 2、Java WebSocket实现服务端主动发消息给客户端
- Android Studio apk打包以及获取apk签名信息
- SVMcgForClass函数报错分析 错误使用 svmtrain (line 233) Y must be a vector or a character array. 出错 SVMcgForCla
- huffman 文件压缩