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中文字符串截取问题
Jun 15 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
Python实现的维尼吉亚密码算法示例
Apr 12 Python
python实现顺序表的简单代码
Sep 28 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
python中pdb模块实例用法
Jan 15 Python
七个Python必备的GUI库
Apr 27 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实现的MySQL数据浏览器
2007/03/11 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
php自定义函数之递归删除文件及目录
2010/08/08 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
vuejs手把手教你写一个完整的购物车实例代码
2017/07/06 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
js实现中文实时时钟
2020/01/15 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
使用Python pip怎么升级pip
2020/08/11 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
英国日常交易网站:Wowcher
2018/09/04 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
央视元宵晚会主持串词
2014/03/25 职场文书
干部个人对照检查材料
2014/08/25 职场文书
批评与自我批评范文
2014/10/15 职场文书
个人四风问题整改措施
2014/10/24 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
钱学森观后感
2015/06/04 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
十个Python自动化常用操作,即拿即用
2021/05/10 Python
MySQL创建表操作命令分享
2022/03/25 MySQL