爬蟲學習一系列 urllib2抓取網頁內容

2022-05-01 05:15:11 字數 2312 閱讀 6787

爬蟲學習一系列:urllib2抓取網頁內容

所謂網頁抓取,就是把url位址中指定的網路資源從網路中讀取出來,儲存到本地。我們平時在瀏覽器中通過**瀏覽網頁,只不過我們看到的是解析過的頁面效果,而通過程式獲取的則是程式源**。我們通過使用python中urllib2來獲取網頁的url資源,最簡單方法就是呼叫urlopen 方法。

http是基於請求和應答機制—客戶端提出請求,服務端提**答。

urllib2用乙個request物件來對映你提出的http請求,通過呼叫urlopen來傳入request物件,將返回乙個相關請求response物件,這個應答物件如同乙個檔案物件,所以我們可以在response物件中呼叫read()方法來讀取。

1

#coding : utf-8

2import

urllib2

3import

urllib

45 url = '

'6 request =urllib2.request(url)

7 res =urllib2.urlopen(request)

8print res.read()

在http請求時,我們還可以傳送data表單資料。一般的html表單,data需要編碼成標準形成,然後作為data引數傳到request物件。而相應的編碼工作就不能用urllib2來完成了,而是我們urllib元件。

1

import

urllib

2import

urllib2

34 url = '

'56 values =

1011 data =urllib.urlencode(values)

12 req =urllib2.request(url,data)

13 response =urllib2.urlopen(req)

14 the_page =response.read()

1516

print the_page

但是我有乙個疑問:就是這乙份**並不能執行,我還不知道傳入資料表單的作用是什麼,或者我們在抓cnblogs頁面時,傳入登入的資訊,是不是我們就可以登入了啊,所以在這裡請教一下大牛,先感謝了。

正規表示式,又稱為正則表示法、常規表示法。正規表示式使用單個字串來描述、匹配一系列符號某個句法規則的字串。通俗的說,正規表示式就是在程式中定義了字串的某種規則,然後我們在網頁源**中找出符合這種規則的所有**語句,不符合的就淘汰不要。

關於正規表示式的很多具體用法,我後面會邊學邊為大家講解的,這裡先略過。

我們可以通過python爬蟲來獲取以下網頁中新聞標題和新聞的id。

5#1.獲取訪問頁面的hmtl

6 url = "

"78 response =urllib2.urlopen(url)

9 html =response.read()10#

2.根據正規表示式抓取特定內容

11 r = re.compile(r'

.).*" target="_blank">(?p.+)')

12 news =r.findall(html)

13for i in

range(len(news)):

14 id =news[i][0]

15 title = news[i][1]16#

data = data.decode('utf-8')17#

title = title.decode('utf-8')

18print title + "

" + id + "

"我們執行這乙份**看看結果是什麼樣的,是否已經成功獲取。

2013 5 day2 一系列生成樹問題

qwq沒題解,只能自己瞎bb了 problem 1 對邊排序,從小到大依次加入 1.該邊權加完了之後此邊仍為割邊 2.改邊權加之前此邊為割邊 3.改邊權加之前此邊為非割邊 怎麼實現呢 2 3.直接用並查集即可 1.估計要樹鏈剖分才行0.0 也可以參見的方法0.0 problem 2 還是先排序,然後...

DB2 設定列為自增的一系列問題

最近臨時加入裡乙個專案團隊,他們使用的資料庫正是db2,這個資料庫使用起來真的特別麻煩,並且非常容易鎖表。我的所有命令是使用 dbvisualizer pro 解決方法 call sysproc.admin cmd reorg table fwd.tbl fwd back file alter ta...

學習c語言指標時 p 和 p等一系列問題

寫出列印的結果。include int main int p a printf d n d n d n d n d n d n d n p,p p p,p p p return 0 理解 第乙個 p。指標指向陣列第乙個元素,則 p為陣列的第乙個值,所以為1。第二個 p 括號優先順序最高,p表示指標已...