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中字典append 到list 后值的改变问题
May 04 Python
Linux下多个Python版本安装教程
Aug 15 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
如何在Django项目中引入静态文件
Jul 26 Python
Python利用WMI实现ping命令的例子
Aug 14 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
Django重设Admin密码过程解析
Feb 10 Python
python 装饰器功能与用法案例详解
Mar 06 Python
Django --Xadmin 判断登录者身份实例
Jul 03 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
python 爬取豆瓣网页的示例
Apr 13 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
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
创建一个复制UBB软件信息的链接或按钮的js代码
2008/01/06 Javascript
js电信网通双线自动选择技巧
2008/11/18 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
js判断密码强度的方法
2020/03/18 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
多个Vue项目部署到服务器的步骤记录
2020/10/22 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Python采集腾讯新闻实例
2014/07/10 Python
python实现的简单猜数字游戏
2015/04/04 Python
Python中的lstrip()方法使用简介
2015/05/19 Python
Python中with及contextlib的用法详解
2017/06/08 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python切片工具pillow用法示例
2018/03/30 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
如何查找网页漏洞
2016/06/22 面试题
公司行政经理岗位职责
2013/12/24 职场文书
家长寄语大全
2014/04/02 职场文书
《学棋》教后反思
2014/04/14 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
停车场管理制度范本
2015/08/05 职场文书
详解Python牛顿插值法
2021/05/11 Python