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之批量下载网页数据相关推荐

  1. python脚本--批量下载GNSS数据

    文章目录 1. 前言 2. 思路 3. Talk is cheap 4. 总结 1. 前言 应某一瓜皮要求,为其写一个用于批量下载GNSS数据的脚本.恰好前几天研究过如何在教务系统中自动签到,便有了这 ...

  2. 利用Python在NASA Earthdata Search 上批量下载MODIS数据

    1.下载网址:https://search.earthdata.nasa.gov 2.第一步:注册账号,右上角Earthdata Login,如实注册,身份可以选择教育.用途可以选择科研团队,记得添加 ...

  3. python 批量下载 代码_Python + Selenium +Chrome 批量下载网页代码修改

    Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...

  4. python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程

    按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...

  5. python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

    Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...

  6. 批量下载ERA5数据(Python+IDM)

    本文介绍了如何通过Python脚本和Internet Download Manager(IDM)软件批量下载ERA5数据. 1. ERA5数据简介 ERA5是第五代ECMWF大气再分析全球气候数据,该 ...

  7. 使用python批量下载天猫数据并进行合并(非爬虫)

    使用python批量下载天猫数据并进行合并(非爬虫) 做电商运营少不了数据分析支持,无论是选品.选关键词.研究竞品还是开直通车.店铺引流都需要有数据支持.不过生意参谋虽然强大,但现在都只能显示&quo ...

  8. python读取哨兵卫星数据_科学网—【Python】批量下载Sentinel-2卫星数据 - 江佳乐的博文...

    简介:本文介绍了一种基于Python批量下载Sentinel-2卫星数据的方法.通过该方法,用户可自定义感兴趣研究区(ROI).限定时间范围.选择产品类别.进行云量筛选,实现自动化批量下载Sentin ...

  9. python批量下载网页文件-Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

最新文章

  1. 【Spring学习】spring依赖注入用法总结
  2. Web Storage API的介绍和使用
  3. sql里如何for循环
  4. linux function
  5. Python基础知识3: if判断语句
  6. 滴滴人脸识别申诉照片怎么拍_涅槃乐队Nevermind封面照片是怎么拍出来的?
  7. android 访问服务器sql_一次服务器被传webshell事件溯源
  8. JS保证输入框里面的数值是数字
  9. Linux操作系统下软件的安装与卸载
  10. 最全经典 | 机器视觉基础知识汇总
  11. 2020年江西省职业院校技能大赛“信息安全管理与评估”赛项样题(高职组)
  12. vue-baidu-map + mapv 实现百度地图迁徙图动效
  13. ddr老化测试_老化测试标准
  14. 控制面板里卸载软件的入口注册表项
  15. 父母的期许与自己的愿望
  16. 两输入单输出的模糊控制器
  17. 环形光源matlab仿真,一种多角度环形光源的制作方法
  18. python123-Python基本语法元素 (第1周)-温度转换 II
  19. 解决AttributeError: module ‘win32com.gen_py.00020813-0000-0000-C000-000000000046x0x1x9‘ has no attribu
  20. 05-ubuntu安装mysql8

热门文章

  1. uvm_objection/uvm_objection_events/test_done_objection/callbacks_objection/objection_callback
  2. PyInstaller 打包单文件 exe 注意事项
  3. 怎样进网站空间服务器,怎样进网站空间服务器
  4. 英文论文如何看?转自知乎
  5. 考研最易出现的几种心理状态,让人崩溃!
  6. 让WP-Advanced-PDF插件支持中文
  7. Python3 网易126邮箱收发邮件
  8. [文献阅读]——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  9. python联机麻将_python麻将和牌算法
  10. 一个非计算机专业的 软考中级 网络工程师考试之路