我第一次接觸爬蟲這東西是在今年的5月份,當時寫了一個博客搜索引擎,所用到的爬蟲也挺智能的,起碼比電影來了這個站用到的爬蟲水平高多了!
回到用Python寫爬蟲的話題。
Python一直是我主要使用的腳本語言,沒有之一。Python的語言簡潔靈活,標準庫功能強大,平常可以用作計算器,文本編碼轉換,圖片處理,批量下載,批量處理文本等。總之我很喜歡,也越用越上手,這么好用的一個工具,一般人我不告訴他。。。
因為其強大的字符串處理能力,以及urllib2,cookielib,re,threading這些模塊的存在,用Python來寫爬蟲就簡直易于反掌了。簡單到什么程度呢。我當時跟某同學說,我寫電影來了用到的幾個爬蟲以及數據整理的一堆零零散散的腳本代碼行數總共不超過1000行,寫電影來了這個網站也只有150來行代碼。因為爬蟲的代碼在另外一臺64位的黑蘋果上,所以就不列出來,只列一下VPS上網站的代碼,tornadoweb框架寫的
[xiaoxia@307232 movie_site]$ wc -l *.py template/*
156 msite.py
92 template/base.html
79 template/category.html
94 template/id.html
47 template/index.html
77 template/search.html
下面直接show一下爬蟲的編寫流程。以下內容僅供交流學習使用,沒有別的意思。
以某灣的最新視頻下載資源為例,其網址是
http://某piratebay.se/browse/200
因為該網頁里有大量廣告,只貼一下正文部分內容:
對于一個python爬蟲,下載這個頁面的源代碼,一行代碼足以。這里用到urllib2庫。
>>> import urllib2
>>> html = urllib2.urlopen('http://某piratebay.se/browse/200').read()
>>> print 'size is', len(html)
size is 52977
當然,也可以用os模塊里的system函數調用wget命令來下載網頁內容,對于掌握了wget或者curl工具的同學是很方便的。
使用Firebug觀察網頁結構,可以知道正文部分html是一個table。每一個資源就是一個tr標簽。
而對于每一個資源,需要提取的信息有:
1、視頻分類
2、資源名稱
3、資源鏈接
4、資源大小
5、上傳時間
就這么多就夠了,如果有需要,還可以增加。
首先提取一段tr標簽里的代碼來觀察一下。
<tr>
<td class="vertTh">
新聞熱點
疑難解答