Python實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲基本實(shí)現(xiàn)代碼解讀
Python是一款功能強(qiáng)大的計(jì)算機(jī)程序語(yǔ)言,同時(shí)也可以被看做是一款面向?qū)ο蟮耐ㄓ眯驼Z(yǔ)言。它的功能特點(diǎn)比較突出,極大的方便開(kāi)發(fā)人員應(yīng)用。在這里我們先來(lái)一起了解一下有關(guān)Python市縣網(wǎng)頁(yè)爬蟲的方法。
今天看到一個(gè)網(wǎng)頁(yè),又因?yàn)樵诩依镉秒娫捑€上網(wǎng),一直在線閱讀很麻煩。所以就寫了個(gè)簡(jiǎn)單的程序把網(wǎng)頁(yè)抓下來(lái)離線閱讀,省點(diǎn)電話費(fèi):)這個(gè)程序因?yàn)橹黜?yè)面鏈接到的頁(yè)面都在同一個(gè)目錄下,結(jié)構(gòu)很簡(jiǎn)單,只有一層。因此寫了一些硬編碼做鏈接地址的分析。
Python實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲代碼如下:
- #!/usr/bin/env python
- # -*- coding: GBK -*-
- import urllib
- from sgmllib import SGMLParser
- class URLLister(SGMLParser):
- def reset(self):
- SGMLParser.reset(self)
- self.urls = []
- def start_a(self, attrs):
- href = [v for k, v in attrs if k == 'href']
- if href:
- self.urls.extend(href)
- url = r'http://www.sinc.sunysb.edu/Clubs/buddhism/JinGangJingShuoShenMo/'
- sock = urllib.urlopen(url)
- htmlSource = sock.read()
- sock.close()
- #print htmlSource
- f = file('jingangjing.html', 'w')
- f.write(htmlSource)
- f.close()
- mypath = r'http://www.sinc.sunysb.edu/Clubs/buddhism/JinGangJingShuoShenMo/'
- parser = URLLister()
- parser.feed(htmlSource)
- for url in parser.urls:
- myurl = mypath + url
- print "get: " + myurl
- sock2 = urllib.urlopen(myurl)
- html2 = sock2.read()
- sock2.close()
- # 保存到文件
- print "save as: " + url
- f2 = file(url, 'w')
- f2.write(html2)
- f2.close()
以上就是我們?yōu)榇蠹医榻B的有關(guān)Python實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲的實(shí)現(xiàn)方法。
【編輯推薦】