Time of Update: 2018-12-08
PC 登入新浪微博時, 在用戶端用js預先對使用者名稱、密碼都進行了加密, 而且在POST之前會GET 一組參數,這也將作為POST_DATA 的一部分。 這樣, 就不能用通常的那種簡單方法來類比POST 登入( 比如 人人網 )。由於要用的一部分微博資料用API擷取不方便, 所以還是要自己寫個小爬蟲, 類比登入是必不可少的。琢磨了一下這個東西,最終登入成功。1, 在提交POST請求之前, 需要GET 擷取兩個參數。 地址是:http://login.sina.com.cn/sso
Time of Update: 2018-12-08
繼續上次的話題,這次抓取的網頁是天涯論壇中,“地緣看世界”1、擷取網址:通過Regex來擷取各貼子網址link='http://www.tianya.cn/publicforum/content/worldlook/1/223829.shtml' html=urllib2.urlopen(link).read() m=re.search(r'name=\'idArticleslist\' value=\S*>',html)
Time of Update: 2018-12-08
本程式用於從網頁抓取文本,也就是盜墓筆記的文本提取,寫得簡單,大家莫笑''' 從盜墓筆記的網站中取得各集具體內容的地址,並從各集體內容網頁中提取內容並寫入檔案中'''#-*- encoding: gb2312 -*-import HTMLParserimport urllibimport sysclass urlParser(HTMLParser.HTMLParser): def __init__(self): self.urllist=[]
Time of Update: 2018-12-08
Java和.net環境下都有工具可以把代碼中的注釋提取出來,python在這方面也不示弱,pydoc就可以作到這一點。Pydoc是從python的2.1版本就加入到其標準庫中的。當我們在命令列解譯器中調用help()命令時,就使用他來在控制台上顯示代碼中的注釋。我們也可以使用他來把module中的注釋提取出來,按照一定的組織方式產生該module的說明文檔,包括類,方法等。Pydoc的原始碼可以在python的安裝目錄的lib檔案夾內找到(我安裝的是2.4)。使用pydoc時,你可以使用-w參數
Time of Update: 2018-12-08
今天看到Test-Driven Development in Python這篇文章,裡面提到在2.1版本的時候,就已經提供了unittest的Module,而且還有和JUnit等xUnit工具類似的pyUnit,實在是讓人驚訝。在看python類庫的源碼時,很多Module都有Test類,當時就覺得python已經接受了測試驅動,沒想到python走的更快。另:一個python小tip,交換兩個變數的值,而且不使用第三個變數:>>> a,b = 1,2>>>
Time of Update: 2018-12-08
這兩天看了看python的FAQ,發現python比我想像中的還要靈活。由於沒有實際的項目演練,無法嘗試,不過FAQ中的東東應該是有權威性的吧:),下面說說自己的一些想法。 我們知道,安裝完python後,就可以執行python指令碼。我們可以把這種方式和.net中的概念對應起來,在.net中,要執行一個程式集,你就必需先安裝.net
Time of Update: 2018-12-08
因為最近在作的項目很特殊,所使用的語言是一個公司內部的IDE環境,而這個IDE所產生的代碼並不是以文本方式存放的,都是放在二進位檔案中,而且由於這門語言外界幾乎接觸不到,所以沒有針對它的代碼統計程式,當一個模組完成後要統計程式碼數會很困難,要統計的話必須先把代碼編輯器中的內容拷貝到一個文本類型的檔案中。正好一直在關注python,還沒有用python寫過程式,今天就利用中午休息的時間寫了一個簡單的代碼統計程式。對輸入的路徑作遞迴,尋找代碼檔案,對每一個代碼檔案計算它的注釋行數,空行數,真正的程式
Time of Update: 2018-12-07
ArcGIS 9.0引入 Python ,作為其 Georocessing 的首選指令碼程式設計語言,並使用PythonCOM直接調用作為COM對象的GP(Georocessing的主對象)對象,這個辦法是最容易實現的辦法,但問題多多。加上調用方式採用類似Shell的調用,Python在ArcGIS 9.0中形同虛設。前面的Blog裡有過多次說明。ArcGIS
Time of Update: 2018-12-07
TDD用了xUnit的實現來舉例,也同時讓我感受了下動態語言(樂觀語言)的魅力,僅僅帖點代碼來:class TestCase: def __init__(self,name): self.name = name def setUp(pass): pass def tearDown(self): pass def run(self,result): result.testStart() self.setU
Time of Update: 2018-12-07
#! /usr/bin/python# coding=utf-8import calendar"""返回的某個月的日曆傳回型別是字串型"""cal = calendar.month(2011, 11)"""返回一年的日曆"""cal = calendar.calendar(2011)cal = calendar.HTMLCalendar(calendar.MONDAY)"""列印出一個月日曆"""cal.formatmonth(2011,
Time of Update: 2018-12-07
#!/usr/bin/python#coding=utf-8import osimport marshal,cPickle"""marshal只能序列化有限的類型而cPickle能夠序列化自訂的類型"""class Foo:def __init__(self, name): self.name = namedef __str__(self):return self.nameo=range(0,10)L = Foo("Goodspeed")cls =
Time of Update: 2018-12-07
#! /usr/bin/python# coding=utf-8import timefrom datetime import datetime"""表示日常所用時間的類,是用C實現的內嵌類。功能比較簡單,但效率高。表示的時間範圍有限1970年1月1日到2038年1月19日。""""""目前時間 返回的一個float型,以一個固定時間epoch(1970年1月1日0時起經過的秒數)因為time終究是以float型來表示的,所以對於timespan的問題,基本就成了數字問題。"""now =
Time of Update: 2018-12-07
#! /usr/bin/python# coding=utf-8import datetime"""datetime的功能強大能支援0001年到9999年""""""目前時間返回的是一個datetime類型now方法有個參數tz,設定時區類型。如果沒有和方法today的效果一樣"""now = datetime.datetime.now()#UTC時間datetime.datetime.utcnow()attrs = [("year","年"),('month',"月"),("day","日")
Time of Update: 2018-12-07
#! /usr/bin/python# coding=utf-8from datetime import datetime,timedelta"""timedelta代表兩個datetime之間的時間差"""now = datetime.now()past = past = datetime(2010,11,12,13,14,15,16)timespan = now - past#這會得到一個負數past - nowattrs = [("days","日"),( 'seconds',"秒"),(
Time of Update: 2018-12-07
#! /usr/bin/python# coding=utf-8from datetime import datetime,date,time"""date類型顧名思義就是只表示日期,而time只表示time"""today = date.today()attrs = [("year","年"),( 'month',"月"),( 'day',"日")]for k,v in attrs:"today.%s = %s #%s" % (k,getattr(today,
Time of Update: 2018-12-07
#!/usr/bin/python#coding=utf-8#http://docs.python.org/library/string.htmlimport string#全部字母 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZprint string.ascii_letters print string.letters #根據地區來的#全部小寫字母 abcdefghijklmnopqrstuvwxyzprint
Time of Update: 2018-12-07
#! /usr/bin/python# coding=utf-8from datetime import datetime, tzinfo,timedelta"""tzinfo是關於時區資訊的類tzinfo是一個抽象類別,所以不能直接被執行個體化"""class UTC(tzinfo):"""UTC"""def __init__(self,offset = 0): self._offset = offsetdef utcoffset(self, dt):return
Time of Update: 2018-12-07
#!/usr/bin/python#coding=utf-8#http://docs.python.org/library/collections.html#count對象 Only 2.7from collections import Counter#統計字母出現的次數Counter('hello world') Counter(['red', 'blue', 'red', 'green', 'blue', 'blue']) #小於等於0的會被忽略c = Counter(a=4, b=2,
Time of Update: 2018-12-07
在《GIS開發人員》第5期,發表了《在組件式GIS開發中整合Python》,文中主要談了思路和方法,沒有涉及使用的方面、打包等事宜。昨天有網友留言問打包的事情,現將有關問題補充說明如下。第一,關於為什麼要使用Python使用Python的主要原因在於其類庫的完備性。目前,可以使用的第三方指令碼語言很多,各有優勢,但個人一直喜歡Python,除了文法的簡潔外,主要是因為Python本身及其第三方類庫的完備。使用Python可以有滿足各個方面的類庫,對於科學研究和GIS開發,SciPy是一個科學計算
Time of Update: 2018-12-07
Open Source GIS-Python Laboratory前身應該是所謂ZMapServer,基於MapServer的Python封裝,目前改名為這個名字,包括2個項目:PrimaGISCreate web maps for Plone using OGC compliant web services or a variety of locally hosted GIS data backends, including your Plone site catalog.Python