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程序设计入门(2)变量类型简介
Jun 16 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
python查看微信好友是否删除自己
Dec 19 Python
python基础教程之五种数据类型详解
Jan 12 Python
python学习基础之循环import及import过程
Apr 22 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
Python socket模块方法实现详解
Nov 05 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 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更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
两个php日期控制类实例
2014/12/09 PHP
基于PHP如何把汉字转化为拼音
2015/12/11 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python处理session的方法整理
2019/08/29 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
代码中finally中的代码会不会执行
2012/02/06 面试题
高中生学习生活的自我评价
2013/11/27 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书