2.1開(kāi)始第一個(gè)爬蟲(chóng)程序

1. 安裝IDE以及hello world

一個(gè)優(yōu)秀的IDE可以極大地提高工作效率,在這里我選擇使用JetBrains公司的PyCharm。是不是有些眼熟?沒(méi)錯(cuò),IDEA 和Android Studio就是他們做的,JetBrains出品,必屬精品。

點(diǎn)擊進(jìn)入下載鏈接

點(diǎn)擊download選擇相應(yīng)平臺(tái)及版本,我這里選擇的是社區(qū)版。

下載界面

安裝過(guò)程,切換主題,調(diào)整字體之類的都跟跟IDEA類似,不需贅述。

那么開(kāi)始我們的hello world程序吧。
新建一個(gè)Python file ,然后寫(xiě)入

print ("hello world")

第一次運(yùn)行在工作區(qū)右擊 run即可

右擊運(yùn)行

之后就會(huì)在Toolbar上顯示run按鈕了

運(yùn)行截圖

很棒有木有

2.1 先爬他一個(gè)網(wǎng)頁(yè)下來(lái)

敲入如下代碼

import urllib2

response = urllib2.urlopen("http://www.baidu.com")
print response.read()

點(diǎn)擊運(yùn)行,我們可以得到結(jié)果

這個(gè)網(wǎng)頁(yè)的源碼被我們爬下來(lái)了,是不是很簡(jiǎn)單!

2.2 分析代碼

下面我們來(lái)分析下這段代碼

import urllib2

urllib2庫(kù)是學(xué)習(xí)Python爬蟲(chóng)最基本的模塊,利用這個(gè)模塊我們可以得到網(wǎng)頁(yè)的內(nèi)容,并對(duì)內(nèi)容用正則表達(dá)式提取分析,得到我們想要的結(jié)果

response = urllib2.urlopen("http://www.baidu.com")

首先我們調(diào)用的是urllib2庫(kù)里面的urlopen方法,傳入一個(gè)URL,這個(gè)網(wǎng)址是百度首頁(yè),協(xié)議是HTTP協(xié)議,urlopen一般接受三個(gè)參數(shù),它的參數(shù)如下:

urlopen參數(shù)

第一個(gè)參數(shù)url即為URL,第二個(gè)參數(shù)data是訪問(wèn)URL時(shí)要傳送的數(shù)據(jù),第三個(gè)timeout是設(shè)置超時(shí)時(shí)間。

第二三個(gè)參數(shù)是可以不傳送的,data默認(rèn)為空None,timeout默認(rèn)為 socket._GLOBAL_DEFAULT_TIMEOUT

第一個(gè)參數(shù)URL是必須要傳送的,在這個(gè)例子里面我們傳送了百度的URL,執(zhí)行urlopen方法之后,返回一個(gè)response對(duì)象,返回信息便保存在這里面。

print response.read()

response對(duì)象有一個(gè)read方法,可以返回獲取到的網(wǎng)頁(yè)內(nèi)容

2.3 構(gòu)造Request

上面的urlopen參數(shù)可以傳入一個(gè)request請(qǐng)求,它其實(shí)就是一個(gè)Request類的實(shí)例,構(gòu)造時(shí)需要傳入U(xiǎn)rl,Data等等的內(nèi)容。我們可以將上面的代碼改寫(xiě)為

import urllib2

request = urllib2.Request("http://www.baidu.com")
response = urllib2.urlopen(request)
print response.read()

運(yùn)行結(jié)果是完全一樣的,只不過(guò)中間多了一個(gè)request對(duì)象,推薦大家這么寫(xiě),因?yàn)樵跇?gòu)建請(qǐng)求時(shí)還需要加入好多內(nèi)容,通過(guò)構(gòu)建一個(gè)request,服務(wù)器響應(yīng)請(qǐng)求得到應(yīng)答,這樣顯得邏輯上清晰明確。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容