Time of Update: 2017-01-13
最近項目中總是跟java配合,我一個寫python的程式員,面對有複雜資料結構的java代碼轉換成python代碼,確實是一大難題,有時候或多或少會留有一點坑,看來有空還得看看java基礎。這不今天又開始讓我們串連kafka啦。公司的kafka跟zookeeper做了群集,串連比較麻煩,具體如何使用,java那面做的封裝我也看不到,所以只能通過簡單的溝通。開始開始肯定去找python串連kafka的標準庫,kafka-python和pykafka
Time of Update: 2017-01-13
本來寫這個玩意兒是想用來自動登入百度,然後根據貼吧內的的排名抓取會員頭像的,比如產生一個貼吧千人頭像圖或萬人頭像圖。也算是練練手。完成後才發現抓那個貼吧排名完全不需要登入…也好,以後用來做自動一鍵簽到(經常忘打卡),搶二樓什麼的,也不錯~~如今在部落格上發個文章用不了多長時間就被抄走了,感覺自己能做的也只有在此鄙視一下它們。廢話太多,容易招人恨,以下是代碼:#-*- coding:gbk -*-## 類比百度登入 for Python2.7#&n
Time of Update: 2017-01-13
Zabbix api可以很方便的管理監控項,功能強大,非常適合二次開發。本文主要實現的功能是django資產管理的更新能夠同步到Zabbix監控平台,統一平台功能,保證資料一致性。Zabbix APIZabbix API中主要用到host.create,host.delete,host.update,host.get和hostinterface.update方法。下面已create為例做下簡單使用說明。 代碼如下複製代碼 { "jsonrpc&
Time of Update: 2017-01-13
一:我們通過charles抓包一段app請求,從伺服器返回json資料,通過chrome外掛程式jsonView 美化json代碼
Time of Update: 2017-01-13
一:網頁結構分析二:代碼實戰#! /usr/bin/env python2# encoding=utf-8#BeautifulSoup需要安裝 MySQLdbimport sys,os,re,hashlibimport urllibimport httplib2from lxml import etreeimport MySQLdbfrom BeautifulSoup 
Time of Update: 2017-01-13
list列表extend()使用方法extend()使用方法與一般函數調用格式一樣,變數名.方法名(參數)extend方法可以在列表尾部追加包含多個值的另一個序列,而list的append()只能添加一個值。可以說list的extend方法是有擴充列表的作用:>>> list1 = [1,2,3]>>> list2 = [7,8,9]>>> list1.extend(list2)>>> list1[1, 2, 3, 7, 8
Time of Update: 2017-01-13
(1)標準類型操作符(所有的集合類型)成員關係 (in, not in) 就序列而言,Python中的in和not in操作符決定某個元素是否是一個集合中的成員。集合等價/不等價
Time of Update: 2017-01-13
Python有logging模組可以方便記錄程式動作記錄,本文簡單樣本一下logging模組的用法:首先引入logging:import xlrdimport MySQLdbimport osimport logging在主程式中先要初始化配置,如:if __name__ == "__main__": logging.basicConfig(filename='./log.txt',
Time of Update: 2017-01-13
if 語句是用來檢查一個條件:如果條件為真(true),我們運行一個語句塊(你為if塊),否則(else),我們執行另一個語句塊(稱為else塊)。else子語句是可選的。例如(儲存為 if.py):number = 23guess = int(input(‘請輸入一個整數:’)) #等待輸入整數if guess == number:
Time of Update: 2017-01-13
對於提供上傳的伺服器,需要對上傳的檔案進行過濾,否則各種webshell,暴庫。import struct # 支援檔案類型 # 用16進位字串的目的是可以知道檔案頭是多少位元組 # 各種檔案頭的長度不一樣,少半2字元,長則8字元 def typeList(): return {
Time of Update: 2017-01-13
python yield
Time of Update: 2017-01-13
當今是移動APP的天下,很多APP軟體為了吸引客戶每天登入使用,設定的有每天簽到送一些獎勵的活動。這裡以一個挺火的網路電話軟體呼應(每天簽到送長)為例,通過python 實現自動簽到。 一、Fiddler 抓包 Fiddler不但能截獲各種瀏覽器發出的HTTP請求, 也可以截獲各種智能手機發出的HTTP/HTTPS請求。Fiddler能捕獲IOS裝置發出的請求,比如IPhone, IPad, MacBook. 等等蘋果的裝置。
Time of Update: 2017-01-13
python和shell(awk命令) 可以實現直接讀取檔案的某一行,按行號進行讀取 。並可以精準的取得該行的某個欄位,這個有點類似於x軸、y軸定位某個點的操作。一、awk取某行某列值awk 可以設定條件來輸出檔案中m行到n行中每行的指定的k欄位,使用格式如下:awk 'NR==m,NR==n {print $k}' path/filenamem,n,k表示實在的數值。如果要用變數來表示m,n的值,則變數需要用單引號將其引起來。NR,{print
Time of Update: 2017-01-13
公司的一個同事在寫shell 的時候,提了這麼一個需求,sar的輸出中,將idle列輸出 ,而且要求適用不同的平台 。在linux下通過awk列印$NF列就是ilde列,假設在其他平台下,如freebsd下idle列是$(NF-1)列,hp-unix下是$1列 (只是假設,請勿直接對號入座),該shell 該怎麼寫?思路:先是想到的通過awk找到匹配idle字串的列號,再列印該列即可。不過琢磨了一下午沒實現,後來又想到通過將列轉換為行,再grep
Time of Update: 2017-01-13
配置這個Python + wsgi + django, 可謂曲折。來看: ***********************安裝環境:Centos5.6Python2.7Mod_wsgi: mod_wsgi-4.4.13Apache: httpd2.2Django: Django-1.8.3***********************1. 安裝Python: Python2.7本來系統裡已經內建了Python2.6, 為了我的追求極致,裝逼的完美主義,我又安裝了Python3.4.
Time of Update: 2017-01-13
Python PycURL 網路編程執行個體在使用urllib的時候經常會死掉,以前debug過,是沒有設定 timing out 所以逾時後就會死掉。PycURL是curl的python庫,雖然有些curl的功能沒有實現,但是還是很強勁的。curl是非常強勁的一個工具,google內部用它來 debug GDATA API. Using cURL to interact with Google data services可以去 http://pycurl.sourceforge.net/
Time of Update: 2017-01-13
先我們來看看cookie是怎麼工作的。 當你開啟瀏覽器並訪問 google.com ,你的瀏覽器會給Google發送一個HTTP請求,起始部分就象這樣: GET / HTTP/1.1 Host: google.com ... 當 Google響應時,HTTP的響應是這樣的: HTTP/1.1 200 OK
Time of Update: 2017-01-13
Python中的閉包介紹閉包(Closure)是詞法閉包(Lexical Closure)的簡稱,是引用了自由變數的函數。這個被引用的自由變數將和這個函數一同存在,即使已經離開了創造它的環境也不例外。所以,閉包是由函數和與其相關的引用環境組合而成的實體。在開始介紹閉包之前先看看Python中的namespace。Python中的namespacePython中通過提供 namespace 來實現重名函數/方法、變數等資訊的識別,其一共有三種 namespace,分別為: &
Time of Update: 2017-01-13
Python提供的Condition對象提供了對複雜線程同步問題的支援。Condition被稱為條件變數,除了提供與Lock類似的acquire和release方法外,還提供了wait和notify方法。線程首先acquire一個條件變數,然後判斷一些條件。如果條件不滿足則wait;如果條件滿足,進行一些處理改變條件後,通過notify方法通知其他線程,其他處於wait狀態的線程接到通知後會重新判斷條件。不斷的重複這一過程,從而解決複雜的同步問題。除了上面畫的acquire方法、
Time of Update: 2017-01-13
在Python的函數參數中經常可以看到*args和**kwargs這樣的寫法,這是Python的魔法參數,也就是可變參數,它支援傳入多個參數,下面看看它們的區別。*args表示任何多個無名參數,它是一個tuple;**kwargs表示關鍵字參數,它是一個 dict。並且同時使用*args和**kwargs時,必須*args參數列要在**kwargs前,像foo(a=1, b=’2′, c=3, a’, 1, None,