python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python爬虫MeterSphere

python爬虫MeterSphere平台执行报告流程解析

作者:友友测试猿

这篇文章主要为大家介绍了python爬虫MeterSphere平台执行报告流程解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

流程

导入模块

import requests
import re
import time
import datetime
from xlrd import open_workbook
from xlutils.copy import copy
import xlrd
from openpyxl import load_workbook
import os
import random
import xlwt
第一模块(使用rquest爬虫):
##登录地址
LoginUrl="http://ms.***.****:****/signin"
headers={
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64)"
    " AppleWebKit/537.36 (KHTML, like Gecko)"
        "Chrome/86.0.****.**** Safari/537.36",
      "Content-Type":"application/json"
}
#请求参数
data ={
        "username": "登录账号",
        "password": "登录密码",
        "authenticate": "LOCL"
}
#向指定的URL发送POST请求
Loginresp=requests.post(url=LoginUrl,json=data,headers=headers)
Loginresp.encoding="utf-8"
stattus=Loginresp.status_code
LogsReturn=Loginresp.text #返参
print(type(LogsReturn))
#print("状态码",stattus)
#print("返参",Loginresp.text)
#print(Loginresp.headers)

requests自带获取cookie方法,一般系统都有反爬虫机制,这个得根据每个系统不同情况判断,我们这里所用到的是正则表达,将请求头全部截获下来进行过滤处理

第二个模块(使用正则过滤)

#cookie
HeadersCookie = str(Loginresp.headers)
HeadersCookieGet = re.findall("'Set-Cookie': '(.+?);", HeadersCookie)
HeadersCookieSwitch=str(HeadersCookieGet)
CookieName = re.sub('['!"#$%&\'()*+,./:;<>?@,。?★、…【】《》?“”‘'![\\]^`{|}~\s]+', "",HeadersCookieSwitch)
#浏览器(lastProjectId),信息头(PROJECT)
LogsReturnPROJECT=re.findall('"lastProjectId":"(.+?)"',LogsReturn)
LogsReturnPROJECTSwitch=str(LogsReturnPROJECT)
LogsReturnPROJECTName = re.sub('['!"#$%&\'()*+,./:;<>?@,。?★、…【】《》?“”‘'![\\]^`{|}~\s]+', "", LogsReturnPROJECTSwitch)
# 浏览器(lastWorkspaceId),信息头(WORKSPACE)
LogsReturnWORKSPACE=re.findall('"lastWorkspaceId":"(.+?)"',LogsReturn)
LogsReturnWORKSPACESwitch=str(LogsReturnWORKSPACE)
LogsReturnWORKSPACESName=re.sub('['!"#$%&\'()*+,./:;<>?@,。?★、…【】《》?“”‘'![\\]^`{|}~\s]+', "", LogsReturnWORKSPACESwitch)
# 浏览器(csrfToken),信息头(CSRF-TOKEN)
LogsCsrfToken=re.findall('"csrfToken":"(.+?)"',LogsReturn)
LogsCsrfTokenwitch=str(LogsCsrfToken)
LogsCsrfTokenName=re.sub('['!"#$%&\'()*,.:;<>?@,。?★、…【】《》?“”‘'![\\]^`{|}~\s]+', "",LogsCsrfTokenwitch)
print("======================================================")

登录成功后我们通过访问首页报告信息,查找报告详情请求规律,一般每个首页报告都包含了一条唯一id,唯一id对应每条报告详情地址最后路径

第三个模块(爬虫报告所有场景唯一值)

# 测试报告
TestReportUrl = "http://ms.***.****:****/api/scenario/report/list/1/60"
TestReportHeaders = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
    "Accept": "application/json, text/plain, */*",
    "Accept-Encoding":"gzip, deflate",
    "Accept-Language":"zh-CN,zh;q=0.9",
    "Connection":"keep-alive",
    "Content-Length":"2525",
    "Content-Type":"application/json",
    "Cookie": CookieName,
    "CSRF-TOKEN":LogsCsrfTokenName,
    "Host":"ms.cic.****:****",
    "Origin":"http://ms.***.*****:****",
    "PROJECT":LogsReturnPROJECTName,
    "Referer":"http://ms.***.*****:****/",
    "WORKSPACE":LogsReturnWORKSPACESName
}
#TestReportDateGet=
#print(TestReportDateGet)
TestReportDate = {
    "projectId": "5072ac88-****-43ed-835b-93e3864f****"
}
#测试报告首页
TestReportResp = requests.post(url=TestReportUrl,json=TestReportDate, headers=TestReportHeaders)
TestReportResp.encoding = "utf-8"
TestReporReturn=TestReportResp.text

以上就是python爬虫MeterSphere平台执行报告流程解析的详细内容,更多关于python爬虫MeterSphere的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文