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中的继承和多态的概念
Apr 27 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python3安装crypto出错及解决方法
Jul 30 Python
Python数据分析模块pandas用法详解
Sep 04 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
浅谈Python type的使用
Nov 19 Python
python3正则模块re的使用方法详解
Feb 11 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
用opencv给图片换背景色的示例代码
Jul 08 Python
Python学习之迭代器详解
Apr 01 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中实现图片的锐化
2006/10/09 PHP
坏狼php学习 计数器实例代码
2008/06/15 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
css图片自适应大小
2007/11/28 Javascript
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
require.js中的define函数详解
2017/07/10 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
Python for循环与range函数的使用详解
2019/03/23 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
python调用百度API实现人脸识别
2020/11/17 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
银行领导证婚词
2014/01/11 职场文书
装修活动策划方案
2014/08/27 职场文书
纪念九一八爱国演讲稿600字
2014/09/14 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
防暑降温通知书
2015/04/27 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python