python之批量下载网页数据
python之批量下载网页数据
要下载如下网页所示数据,一个一个点下载繁琐,我们用python代码来批量下载。
python代码:
import urllib.request # url request
import re # regular expression
import os # dirs
import time'''
url 下载网址
pattern 正则化的匹配关键词
Directory 下载目录
'''def BatchDownload(url, pattern, Directory):# 拉动请求,模拟成浏览器去访问网站->跳过反爬虫机制headers = {'User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}opener = urllib.request.build_opener()opener.addheaders = [headers]# 获取网页内容content = opener.open(url).read().decode('utf8')# 构造正则表达式,从content中匹配关键词patternraw_hrefs = re.findall(pattern, content, 0)# set函数消除重复元素hset = set(raw_hrefs)# 下载链接for href in hset:# 之所以if else 是为了区别只有一个链接的特别情况if (len(hset) > 1):link = url + href[0]filename = os.path.join(Directory, href[0])print("正在下载", filename)urllib.request.urlretrieve(link, filename)print("成功下载!")else:link = url + hreffilename = os.path.join(Directory, href)print("正在下载", filename)urllib.request.urlretrieve(link, filename)print("成功下载!")# 无sleep间隔,网站认定这种行为是攻击,反反爬虫time.sleep(1)BatchDownload('http://download.alleninstitute.org/informatics-archive/current-release/mouse_ccf/annotation/ccf_2017/structure_masks/structure_masks_10/','(structure_(\d+).nrrd)','D:/allen')
上述代码BatchDownload有三个参数,分别为下载网址,下载文件名,保存路径,使用时,修改为自己的参数就可以正常下载,需要注意的是文件名正则化匹配,需要按照自己的文件名来匹配,我所下载文件的名称统一为structure_xxx.nrrd,且xxx均为数字,因此正则化匹配可以写为structure_(\d+).nrrd,其中(\d+)表示1次或n次数字。
参考文章:
https://zhuanlan.zhihu.com/p/65474873
python之批量下载网页数据相关推荐
- python脚本--批量下载GNSS数据
文章目录 1. 前言 2. 思路 3. Talk is cheap 4. 总结 1. 前言 应某一瓜皮要求,为其写一个用于批量下载GNSS数据的脚本.恰好前几天研究过如何在教务系统中自动签到,便有了这 ...
- 利用Python在NASA Earthdata Search 上批量下载MODIS数据
1.下载网址:https://search.earthdata.nasa.gov 2.第一步:注册账号,右上角Earthdata Login,如实注册,身份可以选择教育.用途可以选择科研团队,记得添加 ...
- python 批量下载 代码_Python + Selenium +Chrome 批量下载网页代码修改
Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...
- python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程
按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...
- python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】
Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...
- 批量下载ERA5数据(Python+IDM)
本文介绍了如何通过Python脚本和Internet Download Manager(IDM)软件批量下载ERA5数据. 1. ERA5数据简介 ERA5是第五代ECMWF大气再分析全球气候数据,该 ...
- 使用python批量下载天猫数据并进行合并(非爬虫)
使用python批量下载天猫数据并进行合并(非爬虫) 做电商运营少不了数据分析支持,无论是选品.选关键词.研究竞品还是开直通车.店铺引流都需要有数据支持.不过生意参谋虽然强大,但现在都只能显示&quo ...
- python读取哨兵卫星数据_科学网—【Python】批量下载Sentinel-2卫星数据 - 江佳乐的博文...
简介:本文介绍了一种基于Python批量下载Sentinel-2卫星数据的方法.通过该方法,用户可自定义感兴趣研究区(ROI).限定时间范围.选择产品类别.进行云量筛选,实现自动化批量下载Sentin ...
- python批量下载网页文件-Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
最新文章
- 【Spring学习】spring依赖注入用法总结
- Web Storage API的介绍和使用
- sql里如何for循环
- linux function
- Python基础知识3: if判断语句
- 滴滴人脸识别申诉照片怎么拍_涅槃乐队Nevermind封面照片是怎么拍出来的?
- android 访问服务器sql_一次服务器被传webshell事件溯源
- JS保证输入框里面的数值是数字
- Linux操作系统下软件的安装与卸载
- 最全经典 | 机器视觉基础知识汇总
- 2020年江西省职业院校技能大赛“信息安全管理与评估”赛项样题(高职组)
- vue-baidu-map + mapv 实现百度地图迁徙图动效
- ddr老化测试_老化测试标准
- 控制面板里卸载软件的入口注册表项
- 父母的期许与自己的愿望
- 两输入单输出的模糊控制器
- 环形光源matlab仿真,一种多角度环形光源的制作方法
- python123-Python基本语法元素 (第1周)-温度转换 II
- 解决AttributeError: module ‘win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9‘ has no attribu
- 05-ubuntu安装mysql8
热门文章
- uvm_objection/uvm_objection_events/test_done_objection/callbacks_objection/objection_callback
- PyInstaller 打包单文件 exe 注意事项
- 怎样进网站空间服务器,怎样进网站空间服务器
- 英文论文如何看?转自知乎
- 考研最易出现的几种心理状态,让人崩溃!
- 让WP-Advanced-PDF插件支持中文
- Python3 网易126邮箱收发邮件
- [文献阅读]——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- python联机麻将_python麻将和牌算法
- 一个非计算机专业的 软考中级 网络工程师考试之路