抓取網頁本身的接口
相比與其他靜態編程語言,如java,c#,C++,python抓取網頁文檔的接口更簡潔;相比其他動態腳本語言,如perl,shell,python的urllib2包提供了較為完整的訪問網頁文檔的API。(當然ruby也是很好的選擇)
此外,抓取網頁有時候需要模擬瀏覽器的行為,很多網站對於生硬的爬蟲抓取都是封殺的。這是我們需要模擬user agent的行為構造合適的請求,譬如模擬用戶登陸、模擬session/cookie的存儲和設置。在python裡都有非常優秀的第三方包幫你搞定,如Requests,mechanize
網頁抓取後的處理
抓取的網頁通常需要處理,比如過濾html標籤,提取文本等。python的beautifulsoap提供了簡潔的文檔處理功能,能用極短的代碼完成大部分文檔的處理。
其實以上功能很多語言和工具都能做,但是用python能夠幹得最快,最乾淨。Life is short, u need python.
衝最後一句‘Lifeisshort,uneedpython',立馬在噹噹上買了本python的書!以前就膜拜過python大牛,一直想學都扯於各種藉口遲遲沒有開始。。
py用在linux上很強大,語言挺簡單的。
NO.1 快速開發(唯一能和python比開發效率的語言只有rudy)語言簡潔,沒那麼多技巧,所以讀起來很清楚容易。
NO.2跨平臺(由於python的開源,他比java更能體現"一次編寫到處運行"
NO.3解釋性( 無須編譯,直接運行/調試代碼)
NO.4構架選擇太多(GUI構架方面 主要的就有 wxPython, tkInter, PyGtk, PyQt 。
知識點擴展:
用python寫爬蟲相關的實例:
# coding:utf-8 import urllib domain = 'http://www.liaoxuefeng.com' #廖雪峰的域名 path = r'C:Userscyhhao2013Desktop emp' #html要保存的路徑 # 一個html的頭文件 input = open(r'C:Userscyhhao2013Desktop.html', 'r') head = input.read() # 打開python教程主界面 f = urllib.urlopen("http://www.需要爬取的網址.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000") home = f.read() f.close() # 替換所有空格回車(這樣容易好獲取url) geturl = home.replace(" ", "") geturl = geturl.replace(" ", "") # 得到包含url的字符串 list = geturl.split(r'em;">')[0] url = domain + url #拼湊url print url f = urllib.urlopen(url) html = f.read() # 獲得title為了寫文件名 title = html.split("")[1] title = title.split(" - 廖雪峰的官方網站")[0] # 要轉一下碼,不然加到路徑裡就悲劇了 title = title.decode('utf-8').replace("/", " ") # 截取正文 html = html.split(r'')[1] html = html.split(r'您的支持是作者寫作最大的動力!')[0] html = html.replace(r'src="', 'src="' + domain) # 加上頭和尾組成完整的html html = head + html+"" # 輸出文件 output = open(path + "%d" % list.index(li) + title + '.html', 'w') output.write(html) output.close()
[bom485332 ] 為什麼說python適合寫爬蟲已經有232次圍觀