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中使用OpenCV进行人脸检测的例子
Apr 18 Python
Python3基础之基本数据类型概述
Aug 13 Python
python爬取51job中hr的邮箱
May 14 Python
python 写入csv乱码问题解决方法
Oct 23 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
基于Django contrib Comments 评论模块(详解)
Dec 08 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
python Django的web开发实例(入门)
Jul 31 Python
Python+Redis实现布隆过滤器
Dec 08 Python
Python 批量读取文件中指定字符的实现
Mar 06 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
python Scrapy框架原理解析
Jan 04 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php实现session共享的实例方法
2019/09/19 PHP
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
Python访问纯真IP数据库脚本分享
2015/06/29 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
python实现聊天小程序
2018/03/13 Python
set在python里的含义和用法
2019/06/24 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
基于python图像处理API的使用示例
2020/04/03 Python
Python Json数据文件操作原理解析
2020/05/09 Python
详解python polyscope库的安装和例程
2020/11/13 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
阿迪达斯香港官网:adidas香港
2019/11/09 全球购物
逻辑链路控制协议
2016/10/01 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
先进德育工作者事迹材料
2014/01/24 职场文书
冬季安全检查方案
2014/05/23 职场文书
如何在C++中调用Python
2021/05/21 Python
Go 语言中 20 个占位符的整理
2021/10/16 Golang
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
vue动态绑定style样式
2022/04/20 Vue.js