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合并两个数组的方法
Apr 28 Python
Python自动化开发学习之三级菜单制作
Jul 14 Python
import的本质解析
Oct 30 Python
python学习笔记之列表(list)与元组(tuple)详解
Nov 23 Python
深入浅析python with语句简介
Apr 11 Python
详解爬虫被封的问题
Apr 23 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
Django分组聚合查询实例分享
Apr 29 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 Python
Python序列化与反序列化相关知识总结
Jun 08 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框架实现获取分页数据和总条数的方法
2014/12/05 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
JS 添加网页桌面快捷方式的代码详细整理
2012/12/27 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
Python Deque 模块使用详解
2014/07/04 Python
python中bisect模块用法实例
2014/09/25 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
python 将md5转为16字节的方法
2018/05/29 Python
python字符串循环左移
2019/03/08 Python
python队列原理及实现方法示例
2019/11/27 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
python中id函数运行方式
2020/07/03 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
大三自我鉴定范文
2013/10/05 职场文书
见习期自我鉴定
2014/01/31 职场文书
作弊检讨书1000字
2014/02/01 职场文书
初二学生评语大全
2014/12/26 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
《迟到》教学反思
2016/02/24 职场文书
DE1103使用报告
2022/04/05 无线电