當我們想買一款手機,當我們想知道其他人對一款產品的評價,當我們有各種各樣疑問的時候,我們總是要打開百度,Google等搜索引擎,搜索相關問題。而不是在自己電腦里,或者到書架上翻書查找。這是因為大量的數據來源于互聯網,而百度和Google就是一個從互聯網上抓取數據的大爬蟲。
當我們在瀏覽器里輸入網址發出請求后,瀏覽器會向web服務器發出http請求,而web服務器回應的就是我們請求的html網頁,瀏覽器再解析html網頁,顯示其中的文本和圖片等信息。
所謂的網絡爬蟲就類似于這個過程,它模擬的就是瀏覽器請求網頁的過程。這里我們使用urllib可以實現該功能。要注意urllib在python2中有兩個版本,urllib和urllib2,在python3中它們已經被整合到一起,叫urllib。
以下代碼獲取糗事百科的網頁:
此代碼獲取的是全部html網頁,瀏覽器可以解析顯示有意義的信息。我們就需要進步處理,提取信息。
我們發現html網頁中的段子總是包含在這樣的html代碼中:
我們可以使用正則表達式獲取其中的數據,添加代碼如下:
再一次輸出已經是我們想要獲取的部分: