前段時(shí)間在圖書館借了很多書,借得多了就容易忘記每本書的應(yīng)還日期,老是擔(dān)心自己會(huì)違約,影響日后借書,而自己又懶得總是登錄到學(xué)校圖書館借閱系統(tǒng)查看,于是就打算寫一個(gè)爬蟲來(lái)抓取自己的借閱信息,把每本書的應(yīng)還日期給爬下來(lái),并寫入txt文件,這樣每次忘了就可以打開該txt文件查看,每次借閱信息改變了,只要再重新運(yùn)行一遍該程序,原txt文件就會(huì)被新文件覆蓋,里面的內(nèi)容得到更新。

用到的技術(shù):  

  Python版本是 2.7 ,同時(shí)用到了urllib2、cookielib、re三個(gè)模塊。urllib2用于創(chuàng)建請(qǐng)求(request),并抓取網(wǎng)頁(yè)信息,返回一個(gè)類似于文件類型的response對(duì)象;cookielib用于儲(chǔ)存cookie對(duì)象,以實(shí)現(xiàn)模擬登錄功能;re模塊提供對(duì)正則表達(dá)式的支持,用于對(duì)抓取到的頁(yè)面信息進(jìn)行匹配,以得到自己想要的信息。

抓取一個(gè)頁(yè)面:  

  使用urllib2簡(jiǎn)單抓取一個(gè)網(wǎng)頁(yè)的過(guò)程非常簡(jiǎn)單:

1 import urllib22 response = urllib2.urlopen("http://www.baidu.com")3 html = response.read()

   urllib2中的urlopen()方法,看其字面意思就知道是打開一個(gè)URL(uniform resource locator)地址,上面例子傳入的時(shí)百度首頁(yè)的地址,遵循HTTP協(xié)議,除了http協(xié)議外,urlopen()方法還可以打開遵循ftp、file協(xié)議的地址,如:

1 response = urllib2.urlopen("ftp://example.com")

  除URL參數(shù)外,urlopen()方法還接受data和timeout參數(shù):

1 response = urllib2.urlopen(url ,data ,timeout)

  其中data是打開一個(gè)網(wǎng)頁(yè)時(shí)