通过脚本自动下载Esri会议材料
2024-09-25 07:52:14
在Esri的官网上,可以下载到Esri参加或者举办的各类会议的材料。官方地址为:http://proceedings.esri.com/library/userconf/index.html。
针对某一会议,该网上往往提供会议材料清单表格,部分材料是提供下载的,例如PPT文档或者PDF文档。
以下脚本可用于辅助下载Esri Proceeding网站上的会议PPT,下载好的文档会自动以文档的标题重命名,这样方便检索使用。
制定下载后存放文档的本地文件夹,预先把包含会议材料清单表格的页面使用浏览器保存到本地。
# -*- coding:utf-8 -*-
from lxml import etree
from lxml.html import soupparser
import re
from os import path
import shutil
from os import rename
from urllib.request import Request
import urllib.request try:
rootpath = 'D:/EsriPPT/'
f = open('D:/Recent Proceedings.html', 'r', encoding="windows-1252", errors='ignore')
t = ''.join(f.readlines())
parser = etree.XMLParser(encoding='gbk', dtd_validation=False, recover=True, ns_clean=True)
tree = soupparser.fromstring(t)
rows = tree.xpath('//table/tbody/tr')
for r in rows:
cols = r.xpath('td')
for links in cols[1].iterchildren(tag='a'):
result = re.search(r'dev_int_\d+\.pdf', links.get('href'))
if(result!=None):
oldpath = rootpath + result.group(0)
newpath = cols[0].text + '.pdf'
newpath = rootpath + newpath.replace(':', '_').replace('/', '').replace('?', '')
# to check whether the original file has downloaded
if path.exists(oldpath) and not path.exists(newpath):
rename(oldpath, newpath)
else:
remote = 'http://proceedings.esri.com/library/userconf/devsummit17/papers/' + result.group(0)
urllib.request.urlretrieve(remote, oldpath)
rename(oldpath, newpath) finally:
f.close()
del tree
最新文章
- KOTLIN开发语言文档(官方文档) -- 入门
- owin中间件
- 如何写BaseDomain
- linux第4天 shell socket
- paper 19 :机器学习算法(简介)
- http_load的安装及使用方法
- SSDT – Error SQL70001 This statement is not recognized in this context-摘自网络
- mysql数据库字段区分大小写的设置方法
- .Net Core 环境搭建
- backBarButtonItem无效
- BZOJ_2049_[Sdoi2008]Cave 洞穴勘测_LCT
- 【POJ2226】Muddy Fields
- vim安装自动补全插件
- 基于mindwave脑电波进行疲劳检测算法的设计(2)
- linux网络常用命令
- poj 2299 Ultra-QuickSort(归并排序,树状数组,线段树)
- 【cs229-Lecture3】Logistic回归
- Entity Framework 入门
- 【bzoj2938】病毒
- SpringBoot 部署 docker 打包镜像
热门文章
- 能够放在文档的 <;head>; 中的各种配置元素
- Redis学习笔记(6)——SpringDataRedis入门
- Java NIO学习与记录(一):初识NIO
- /usr/bin/ld: cannot find -lperconaserverclient_r 解决
- Mac OS 10.12使用U盘重装(转)
- 用Python写了一个postgresql函数,感觉很爽
- shiro学习笔记_0200_认证
- java中Filter过滤器处理中文乱码的方法
- $scope作用域与依赖注入
- AngularJS 的常用特性(四)