爬蟲學習一系列:urllib2抓取網頁內容
所謂網頁抓取,就是把url位址中指定的網路資源從網路中讀取出來,儲存到本地。我們平時在瀏覽器中通過**瀏覽網頁,只不過我們看到的是解析過的頁面效果,而通過程式獲取的則是程式源**。我們通過使用python中urllib2來獲取網頁的url資源,最簡單方法就是呼叫urlopen 方法。
http是基於請求和應答機制—客戶端提出請求,服務端提**答。
urllib2用乙個request物件來對映你提出的http請求,通過呼叫urlopen來傳入request物件,將返回乙個相關請求response物件,這個應答物件如同乙個檔案物件,所以我們可以在response物件中呼叫read()方法來讀取。
1在http請求時,我們還可以傳送data表單資料。一般的html表單,data需要編碼成標準形成,然後作為data引數傳到request物件。而相應的編碼工作就不能用urllib2來完成了,而是我們urllib元件。#coding : utf-8
2import
urllib2
3import
urllib
45 url = '
'6 request =urllib2.request(url)
7 res =urllib2.urlopen(request)
8print res.read()
1但是我有乙個疑問:就是這乙份**並不能執行,我還不知道傳入資料表單的作用是什麼,或者我們在抓cnblogs頁面時,傳入登入的資訊,是不是我們就可以登入了啊,所以在這裡請教一下大牛,先感謝了。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
正規表示式,又稱為正則表示法、常規表示法。正規表示式使用單個字串來描述、匹配一系列符號某個句法規則的字串。通俗的說,正規表示式就是在程式中定義了字串的某種規則,然後我們在網頁源**中找出符合這種規則的所有**語句,不符合的就淘汰不要。
關於正規表示式的很多具體用法,我後面會邊學邊為大家講解的,這裡先略過。
我們可以通過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表示指標已...