1. 程式人生 > >使用python為POST報文做 屬性,屬性值 分割

使用python為POST報文做 屬性,屬性值 分割

最近正在瘋狂的弄python,boss最近瘋狂的懟我什麼語言用的熟,我說沒有,全靠百度爸爸施捨些程式碼。boss意味深長的一笑....咳咳,又說廢話了,不多說,最近在搞POST報文,這奇奇怪怪的格神奇的學會了regular expression,python的字串各種函式和字典資料結構。以下程式碼就搞了一件事:

輸入:

POST //images/pp.php

Content-Length:143

輸出:

POST    Content-Length

//images/pp.php    143

還有些輸入格式細節我就不說了

#-*- encoding: UTF-8 -*-
import openpyxl
from openpyxl import load_workbook
from openpyxl import Workbook
import numpy as np
import pandas as pd
import regex as re
#載入分析資料
book=load_workbook('exdata.xlsx','utf-8')
sheet=book.worksheets[0]
rows=sheet.max_row
cols=sheet.max_column
#輸出分析資料的表格
wb=Workbook()
osheet=wb.worksheets[0]
attribute_name={'域名': 1, 'type': 2}#儲存一個 屬性名 --> 屬性列下標 的對映
attribute_num=2
osheet.cell(row=1,column=1).value='domain-name'
osheet.cell(row=1,column=2).value='legal_type'
for i in range(2,rows+1):#向字典裡新增元素  rows+1
#將域名和型別寫入表格
osheet.cell(row=i,column=1).value=sheet.cell(row=i,column=1).value
osheet.cell(row=i,column=2).value=sheet.cell(row=i,column=3).value
#對POST報文進行處理
pval=sheet.cell(i,2).value
#去除無用字元
pval=pval.replace('_x000D_','')
#篩除無用密文------也可能不是
pval=pval.split('\n\n')
att_val=pval[0]
#生成<屬性,值>對
att_val=att_val.split('\n')
#print(att_val)#測試使用
for j in range(0,len(att_val)):
if j==0:
index=att_val[j].find(' ')
[attr,value]=[att_val[j][0:index],att_val[j][index+1:]]
else:
index=att_val[j].find(': ')
[attr,value]=[att_val[j][0:index],att_val[j][index+2:]]
if attribute_name.get(attr)==None:#屬性列表裡沒有該屬性名
attribute_name[attr]=attribute_num+1
attribute_num+=1
osheet.cell(row=1,column=attribute_name[attr]).value=attr
#寫入輸出的表格,直接寫單元格就行
osheet.cell(row=i,column=attribute_name[attr]).value=value
wb.save('table.xlsx')

相關推薦

使用pythonPOST報文 屬性屬性 分割

最近正在瘋狂的弄python,boss最近瘋狂的懟我什麼語言用的熟,我說沒有,全靠百度爸爸施捨些程式碼。boss意味深長的一笑....咳咳,又說廢話了,不多說,最近在搞POST報文,這奇奇怪怪的格神奇的學會了regular expression,python的字串各種函式和字

Python的__getattr__和__setattr__方法屬性私有化

__getattr__方法: 攔截點號運算。物件.屬性:如果找不到屬性,就會用屬性名作為字串,呼叫該方法;如果繼承樹可以找到該屬性,則不會呼叫該方法 這裡empty類和例項x並沒有屬性age,所以執行x.age時,就會呼叫__getattr__方法,對於name也

java中StringBuilder單線程StringBuffer相反

stringbu [] run lee 沒有 auth stub b- ati //沒有sycronized修飾method,是線程不安全的,--StringBuffer來彌補這個缺點,但速度就慢了 並沒有測試出來:: 1 /** 2 * 3 */ 4 p

資料庫--表的約束--空屬性預設列描述主鍵唯一鍵自增長外來鍵等等

表的約束 空屬性及非空屬性 預設值 列描述 zerofill 主鍵 自增長 索引 唯一鍵 外來鍵 表的約束很多,這裡主要介

git 怎麼開源專案貢獻怎麼有效管理貢獻者的提交

,當作為專案貢獻者時,我們該怎麼做才能方便維護者採納更新;或者作為專案維護者時,又該怎樣有效管理大量貢獻者的提交。 5.1  分散式工作流程 同傳統的集中式版本控制系統(CVCS)不同,開發者之間的協作方式因著 Git 的分散式特性而變得更為靈活多

Gson 同一屬性屬性名不相同的轉換

在使用Gson解析json字串時,使用gson.fromGson(jsonStr,type) 解析時,通常jsonStr裡的實體屬性名與type的實體屬性名要保持一直,這樣才能轉換成功 當屬性命不相同時,使用@SerializedName("name") 即可實現轉換,na

Python最實用的五大框架的學習!

框架的出現不僅讓程式設計師能夠以更少的程式碼實現自定義功能,同時還能讓他們更集中在業務邏輯上,所有幾乎所有的程式設計師都會樂於使用框架。 開發一個Web應用程式,除了編寫應用程式之外,還有很多其它事情需要做,例如瞭解伺服器端架構、讓應用程式在使用JavaScript的使用者瀏覽器上執行等等。所以

使用WebElements定位多個相似的元素比如頁面中存在五個單選按鈕,他們有相同的class屬性:myRadio我們想對五個按鈕迴圈操作我們可以把它們全部取出來放到集合中然後迴圈操作

webdriver提供了豐富的API,有多種定位策略:id,name,css選擇器,xpath等,其中css選擇器定位元素效率相比xpath要高些,使用id,name屬性定位元素是最可靠,效率最高的一種辦法。   1、工具選擇:在我們開發測試指令碼的過程中各個瀏覽器給

SCRIPT5007:無法獲取屬性“show”的對象null或沒有定義

dojo show post nbsp gb2 data scrip con style 1、錯誤描寫敘述 SCRIPT5007:無法獲取屬性“show”的值,對象為null或沒有定義 dojo.js,行15.字符11808 2、錯誤原因

Python通過lxml庫遍歷xml通過xpath查詢(標簽屬性名稱屬性標簽對屬性

style 去掉 odi 之間 [] 符號 層次結構 div amp xml實例: 版本一: <?xml version="1.0" encoding="UTF-8"?><country name="chain"><provinces>

今天一個項目的時候要在一個編輯的jsp頁面的textarea標簽設置value屬性,結果發現他沒有value屬性,但是是編輯頁面又必須要回顯要修改的內容所以在參考了w3cschool之後很輕松的解決了這個問題。

w3cschool 一個 ansi cli enc per table prefix cin 今天做一個項目的時候,要在一個編輯的jsp頁面的textarea標簽設置value屬性,結果發現他沒有value屬性,但是是編輯頁面又必須要回顯要修改的內容,所以在參考了w3csc

定義抽象類Shape抽象方法showArea()求出面積並顯示定義矩形類Rectangle,正方形類Square,圓類 Circle根據各自的屬性,用showArea方法求出各自的面積在main方法中構造3個對象調用showArea方法。(體現多態)

子類 protected new 都是 package 使用 類指針 3.1 shape 實現多態的三個條件:1.要有繼承2.要有抽象方法重寫3.用父類指針(引用)指向子類對象 重載重寫重定義的區別: 1.重載:在同一個類中進行;  編譯時根據參數類型和個數決定方法調用; 

vue計算屬性v-for處理數組時遇到的一個bug

this 解決 就是 com 渲染 fault post return 我想 問題 bug: You may have an infinite update loop in a component render function 無限循環 需要處理的數組(在 ** ssq

python類的使用(類定義構造器屬性方法)

電子 針對 python 構造函數 tin 描述 將實例 工具 it民工 註:這裏只描述使用方法,具體類的概念長篇大論就不要為難我這個懶人了。 總之一句話編程語言只是一個工具,會用就行,好用就行。打破砂鍋問到底,我覺得有必要研究一下C,匯編,電子鏈路等。 1 class

spring boot加mybatis使用Map返回時空時屬性也會沒有(轉)

call pri per n-n spring fig setter 解決 strong 使用spring boot加mybatis時,設置Map返回,當值為空時屬性也會沒有,就會報錯 在application.properties中加入下面配置,將會解決這個問題。

python3 速查參考- python基礎 8 -> 面向對象基礎:類的創建與基礎使用屬性property、類方法、靜態方法、常用知識點概念(封裝、繼承等等見下一章)

fde ODB 面向 繼承 普通 實參 使用 後者 people 基礎概念 1.速查筆記: #-- 最普通的類 class C1(C2, C3): spam = 42 # 數據

python屬性 、實例屬性可變數據結構作為類屬性需要註意的地方

新的 tool gpo 聲明 info 必須 電影 title img 有一個大笨豬,按java寫觀察者模式,java寫得是直接在類名下聲明一個實例屬性(不加static的),他直接翻譯成python後,也是直接寫在類名下面,這就是大坑了。 java裏面在類名下面聲明的

python靜態屬性靜態方法類方法

類的屬性 tool 方法 method nbsp 靜態屬性 world assm 函數調用 #靜態屬性的作用是吧類的方法隱藏起來(可以把背後的邏輯隱藏起來),讓用戶感覺是在電泳屬性,而不是方法 class Static: attribute='屬性'

Python學習:17.Python面向對象(四、屬性(特性)成員修飾符類的特殊成員)

介紹 col 寫代碼 被調用 表示 1.5 emp 成員 object 一、屬性(特性) 普通方法去執行的時候,後面需要加括號,特性方法執行的時候和靜態字段一樣不需要不需要加括號. 特性方法不和字段同名. 特性方法不能傳參數. 在我們定義數據庫字段類的時候,往往需要

Python:類屬性實例屬性私有屬性與靜態方法類方法實例方法

所有 參數 方法 rate self 類屬性 不能 anaconda 賦值 類屬性可以直接在方法中賦值,但 一、調用該屬性時,必須先調用該方法; 二、與 init 方法區別是,init方法只初始化一次,初始化完成後作為全局變量。在方法中賦值屬性,每次調用該方法,該屬性初始化