Python編寫簡單的網絡爬蟲


Python編寫簡單的網絡爬蟲

根據網絡上給出的例子,簡單總結一下用Python編寫網絡爬蟲程序的基本思路,以百度為例,主要有以下策略:Python提供了許多Module,通過這些Module,可以很簡單的做一些

工作。比如,要獲得NBA這個詞在百度搜索結果頁中各個搜索結果對應的URL,這就是一個很簡單的爬蟲需求。

1、通過urllib2這個Module獲得對應的HTML源碼。

# -*- encoding: utf-8 -*-
import urllib2

url='http://www.baidu.com/s?wd=NBA'
content=urllib2.urlopen(url).read()
print content

通過上面這三句就可以將URL的源碼存在content變量中,其類型為字符型。

2、接下來是要從這堆HTML源碼中提取我們需要的內容。用Chrome查看一下對應的內容的代碼(也可以用Firefox的Firebug)。

 

 

可以看到url存儲在<h3 class="t">標簽中,要獲取其中的信息可以用正則式。

re.compile是將字符串編譯為用於python正則式的模式,字符前的r表示是純字符,這樣就不需要對元字符進行兩次轉義。re.findall返回的是字符串中符合正則表達式的列表。site依次輸出我們所要獲取的網絡地址。這里需要強調的是需要編寫正確的正則表達式才能獲取到我們想要的結果,這里的代碼可能還不夠精確。

import re
urls_pat=re.compile(r'<h3 class="t">(.*?)</h3>')
siteUrls=re.findall(r'href="(.*?)" target="_blank">',content)
for site in siteUrls:
    print site

3、對所得結果進行處理:比如進一步獲取有用的信息或將信息進行存儲;再比如運用相關的數據結構進行大規模網絡爬蟲,或者分布式的網絡爬蟲設計。

當然網絡爬蟲原理是很簡單,但是需要大規模處理網絡資源的時候就會遇到各種各樣的問題,需要做各種各樣的優化處理工作,這里簡單介紹一下,希望對“聚焦網絡爬蟲”有所了解。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM