用Python寫簡單爬蟲百度權重查詢 站長交易 友情鏈接交換 網站監(jiān)控 服務器監(jiān)控 SEO監(jiān)控 Python提供了許多Module,,通過這些Module,,可以很簡單的做一些工作,。比如,,要獲得cloga這個詞在百度搜索結果頁中的排名結果(排名結果+URL),這就是一個很簡單的爬蟲需求,。 首先,,要通過urllib2這個Module獲得對應的HTML源碼。 import urllib2 通過上面這三句就可以將URL的源碼存在content變量中,,其類型為字符型,。 接下來是要從這堆HTML源碼中提取我們需要的內容。用Chrome查看一下對應的內容的代碼(也可以用Firefox的Firebug),。 可以看到url的信息存儲在span標簽中,,要獲取其中的信息可以用正則式。 import re re.compile是將字符串編譯為用于python正則式的模式,,字符前的r表示是純字符,,這樣就不需要對元字符進行兩次轉義。re.findall返回的是字符串中符合results_pat的列表,,由于在results_pat中使用了子表達式,,所以results存儲的就是子表達式所匹配的內容,即<span>與</span>之間的內容,。 此外,,也可以用BeautifulSoup這個Module來獲得提取同樣的信息。直接從源碼中用正則式提取信息適用于那些按照標準寫的HTML頁面,,BeautifulSoup則可以處理一些編寫不規(guī)范的頁面,。 from BeautifulSoup import BeautifulSoup BeautifulSoup()可以把剛才抓到的字符串轉化為Beautiful的對象,。這樣就可以應用BeautifulSoup提供的一些方法處理HTML。比如,,findAll('a')就可以返回一個所有頁面的a標簽的List,,我覺得這個和JS里面的getElementByTagName挺像的。另外也可以指定attrs參數(shù),,這個參數(shù)就是一個篩選條件,,其數(shù)據結構是一個字典。findAll('span',attrs={'class':'g'})的意思就是返回所有class='g'的span標簽的內容(包括span標簽自身),。 用正則式和BeautifulSoup獲得內容還需要進一步處理,,因為其中包含html標簽。類似,,hi.baidu.com/<b>cloga</b> 2010-8-29或者<span> hi.baidu.com/<b>cloga</b> 2010-8-29 </span>,,同樣可以用正則式的sub方法替換掉這些標簽。 strip_tag_pat=re.compile(r'<.*?>') 再來就是把對應的結果輸出到文件中,,比如,,排名、URL,、收入日期這樣的形式,。OK,這樣就用Python實現(xiàn)了一個簡單的爬蟲需求,。秀一下上面代碼的輸出,。 |
|
來自: 啊羊的書店 > 《python-weibo》