Cacti的流量图爬取

简介: cacti交换机流量图检测工具

Cacti的流量图爬取
Windows环境


from PIL import Image
from io import BytesIO
from docx import Document
from docx.shared import Inches
from bs4 import BeautifulSoup
from http import cookiejar

import datetime
import glob
import shutil
import os
import re
import requests
import urllib

#路径变量
SOURCEPATH=""
Ops=""
INSPECTION=""
MONITOR=""
SHELVES=""

#地点变量
add = "ADDRESS"

#获取cookie
FILENAME = open("cookie.txt", 'w+')
filename = 'cookie.txt'




def GetCookie():
    url = 'url'
    file=urllib.request.urlopen(url)
    #print(file.getcode)
    message = file.info()
    CookieStr = str(message)
    CookieVlue = re.findall(r'Cacti=[a-zA-Z0-9]+',CookieStr)[0]
    print(CookieVlue)
    return CookieVlue

#爬取数据
document = Document()
url='url'
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
    'Cookie':'Cacti=fdsafdsaw32342',
}


for i in (2,3,4,5,6,7,8,9,10,11,34,35,36):
    #目标页面
    for n in (1,3,6):
        #目标目录
        payload1 = {'action':'tree','tree_id':'2','leaf_id':'%s'%i,'page':'%d'%n}

        for m in(350,410,528,472,588,110,170,230,290,1085,1116,1142):
            #流量图ID号

            #正则规则
            Regular1 = '(graph\Simage\Sphp.*local_graph_id=%d.*end=\d+)'%m
            print (Regular1)
            First_Page = requests.get(url,headers=headers,params=payload1)
            print (First_Page.url)

            #清洗数据,获取流量图URL
            plt = re.findall(Regular1,First_Page.text)
            print(plt)
            if len(plt):
                a=(plt[0])
            else:
                True
            JPG_url = ( '<URL>'+ a)
            print( '<URL>'+ a)
            JPG_url_r = JPG_url.replace(';','&')
            print(JPG_url_r)

            #获取图片二进制数据,并保存成doc
            r = requests.get(JPG_url_r,headers=headers)
            image = Image.open(BytesIO(r.content))
            image.save('image%d.bmp'%i)
    document.add_picture('image%d.bmp'%i, width=Inches(6))
document.save('FRALYCHEN.docx')

#复制巡检报告文件并标记日期
T=datetime.datetime.now()

src_file = '00' + add + 'FRALYCHEN.xls'
dst_file = "2019.{}.{}".format(T.month, T.day) + add + 'FRALYCHEN.xls'
shutil.copyfile(SOURCEPATH + src_file,INSPECTION + dst_file)

MonScfile = '00' + add + 'FRALYCHEN.docx'
MonDtfile = "2019.{}.{}".format(T.month, T.day) + add + 'FRALYCHEN.docx'
shutil.copyfile(SOURCEPATH + MonScfile,MONITOR + MonDtfile)

#删除文件
os.remove(SOURCEPATH + MonScfile)
for infile in glob.glob(os.path.join(SOURCEPATH,'*.bmp')):
    os.remove(infile)

#SVN提交
def SvnCommit():
    os.chdir(Ops)
    os.system('svn cleanup')
    r=os.popen('svn st')
    info=r.readlines()
    print(info)

    for line in info:
        line=line.strip('\n').split('       ')
        one=line[0]
        two=line[1]
        print(two)
        if one == '?':
            os.system('svn add %s' % two)
            os.system('svn commit -m %s' % two)
        elif one == '!':
            os.system('svn del %s' %two)
            os.system('svn commit -m "clear"')
SvnCommit()
目录
相关文章
|
7月前
|
数据采集 存储 XML
给你一个具体的网站,你会如何设计爬虫来抓取数据?
【2月更文挑战第23天】【2月更文挑战第75篇】给你一个具体的网站,你会如何设计爬虫来抓取数据?
114 1
|
7月前
|
数据采集 数据可视化 数据挖掘
Python爬虫实战:抓取网站数据并生成报表
本文将介绍如何使用Python编写简单而高效的网络爬虫,从指定的网站上抓取数据,并利用数据分析库生成可视化报表。通过学习本文内容,读者将能够掌握基本的爬虫技术和数据处理方法,为日后开发更复杂的数据采集与分析工具打下坚实基础。
|
2月前
|
数据采集
以“股票代码实时抓取股票信息”为例的爬虫案例
爬虫—根据股票代码实时抓取股票信息
118 0
|
4月前
|
数据采集 监控 搜索推荐
使用 Python 爬虫进行网站流量分析:Referer 头的利用
使用 Python 爬虫进行网站流量分析:Referer 头的利用
|
测试技术 Python
Python_记一次网站数据定向爬取实现
Python_记一次网站数据定向爬取实现
93 0
|
SQL 监控 HIVE
网站流量日志分析--统计分析--独立访客分析|学习笔记
快速学习网站流量日志分析--统计分析--独立访客分析
230 0
网站流量日志分析--统计分析--独立访客分析|学习笔记
|
SQL 监控 HIVE
网站流量日志分析--统计分析--回头单次访客分析|学习笔记
快速学习网站流量日志分析--统计分析--回头单次访客分析
133 0
网站流量日志分析--统计分析--回头单次访客分析|学习笔记
|
数据采集 消息中间件 前端开发
爬虫识别-关键页面访问量-需求及实现思路|学习笔记
快速学习爬虫识别-关键页面访问量-需求及实现思路
143 0
爬虫识别-关键页面访问量-需求及实现思路|学习笔记
|
数据采集 分布式计算 大数据
爬虫识别-关键页面访问量-实现代码及效果|学习笔记
快速学习爬虫识别-关键页面访问量-实现代码及效果。
109 0
|
NoSQL 关系型数据库 Java
站点访问统计 | 学习笔记
快速学习站点访问统计
301 0
站点访问统计 | 学习笔记