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统计文件行数示例分享
Feb 21 Python
python计算圆周长、面积、球体体积并画出圆
Apr 08 Python
Python复数属性和方法运算操作示例
Jul 21 Python
Python列表生成式与生成器操作示例
Aug 01 Python
python3 中文乱码与默认编码格式设定方法
Oct 31 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
Jun 03 Python
python 正则表达式参数替换实例详解
Jan 17 Python
python numpy数组中的复制知识解析
Feb 03 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 Python
Python爬虫之Selenium实现窗口截图
Dec 04 Python
pytorch实现手写数字图片识别
May 20 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
Jquery ajax请求导出Excel表格的实现代码
2016/06/08 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
九步学会Python装饰器
2015/05/09 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
python 实现简单的FTP程序
2019/12/27 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
python小白切忌乱用表达式
2020/05/29 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
安全资料员岗位职责
2013/12/14 职场文书
六一亲子活动总结
2014/07/01 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
公司合并协议书范本
2014/09/30 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
小学优秀班主任材料
2014/12/17 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL