python爬虫 批量下载zabbix文档代码实例


Posted in Python onAugust 21, 2019

这篇文章主要介绍了python爬虫 批量下载zabbix文档代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

# -*- coding: UTF-8 -*-
import requests,re,time
url = 'https://www.zabbix.com/documentation/3.4/zh/manual'
base_url = 'https://www.zabbix.com/documentation/3.4/'
seconds = 1
err_url = []
def get_urls():
  res = requests.get(url)
  content = res.text
  pattern = re.compile(r"indexmenu_4848130395ca30b274d8bd.add[(]'(zh/manual.*?)[']", re.S)
  routes = pattern.findall(content)
  urls = [base_url+item for item in routes]
  return urls 
def download(url):
  download_url = url + "?do=export_pdf"
  print("当前下载url:")
  print(download_url)
  res = requests.get(url)
  if res.status_code == 200 :
    pattern = re.compile(r"<title>(.*?)</title>", re.S)
    title = pattern.findall(res.text)[0].encode("utf-8")
    try:
      filename = title.replace('\\','-').replace('/','-').replace('"','-').replace('*','-').replace('?','-').replace(':','-').replace('<','-').replace('>','-').replace('|','-')
    except Exception:
       title = pattern.findall(res.text)[0]
    filename = title.replace('\\','-').replace('/','-').replace('"','-').replace('*','-').replace('?','-').replace(':','-').replace('<','-').replace('>','-').replace('|','-')
    file = filename + '.pdf'
    res = requests.get(download_url)
    if res.status_code == 200 :
      with open(file,"wb") as f:
        f.write(res.content)
      print('下载成功')
    else:
      print('下载失败')
      err_url.append(download_url)
  else:
    print('获取文件名失败,停止当前下载')
    err_url.append(download_url) 
def downloads(urls):
  for url in urls:
    download(url)
    time.sleep( seconds )
  if len(err_url) :
    print("下载失败的URL:")
    print(err_url) 
def main():
  print("下载开始")
  urls = get_urls()
  downloads(urls)
  print("下载完成") 
if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
简洁的十分钟Python入门教程
Apr 03 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
使用tensorflow实现AlexNet
Nov 20 Python
python3.7.0的安装步骤
Aug 27 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
Python控制键盘鼠标pynput的详细用法
Jan 28 Python
基于django channel实现websocket的聊天室的方法示例
Apr 11 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
python之生成多层json结构的实现
Feb 27 Python
Python实现验证码识别
Jun 15 Python
Django 在iframe里跳转顶层url的例子
Aug 21 #Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 #Python
django写用户登录判定并跳转制定页面的实例
Aug 21 #Python
Django自定义模板过滤器和标签的实现方法
Aug 21 #Python
扩展Django admin的list_filter()可使用范围方法
Aug 21 #Python
python机器学习包mlxtend的安装和配置详解
Aug 21 #Python
python 画出使用分类器得到的决策边界
Aug 21 #Python
You might like
用php+mysql一个名片库程序
2006/10/09 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
javascript function、指针及内置对象
2009/02/19 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
React Router基础使用
2017/01/17 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
Python中下划线的使用方法
2015/03/27 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
Python+OpenCV实现车牌字符分割和识别
2018/03/31 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python连接PostgreSQL数据库的过程详解
2019/09/18 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
工程管理英文求职信
2014/03/18 职场文书
中专生自荐信
2014/06/25 职场文书
优秀班主任材料
2014/12/16 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电