課程
/后端開發(fā)
/Python
/Python開發(fā)簡單爬蟲
誰能幫忙找錯(cuò)?
2016-07-29
源自:Python開發(fā)簡單爬蟲 7-7
正在回答
pydev debugger: starting (pid: 5204),沒運(yùn)行一次,pid后邊的數(shù)就 變一次
#coding:utf8
from baike_spider import url_manager, html_downloader, html_parser,\
? ? html_outputer
class SpiderMain(object):
? ? #構(gòu)造函數(shù),初始化各個(gè)對(duì)象
? ? def __init__(self):
? ? ? ? #url管理器
? ? ? ? self.urls = url_manager.UrlManager()
? ? ? ? #url下載器
? ? ? ? self.downloader = html_downloader.HtmlDownloader()
? ? ? ? #url解析器
? ? ? ? self.parser = html_parser.HtmlParser()
? ? ? ? #url輸出器
? ? ? ? self.outputer =html_outputer.HtmlOutputer()
? ? ? ??
? ? #爬蟲的調(diào)度程序
? ? def craw(self, root_url):
? ? ? ? #count記錄當(dāng)前爬取的是第幾個(gè)url
? ? ? ? count = 1
? ? ? ? #1.首先將入口url添加入管理器
? ? ? ? self.urls.add_new_url(root_url)
? ? ? ? #啟動(dòng)爬蟲循環(huán),當(dāng)管理器中有url時(shí)
? ? ? ? while self.urls.has_new_url():
? ? ? ? ? ? try:
? ? ? ? ? ? ? ? #獲取一個(gè)待爬取的url
? ? ? ? ? ? ? ? new_url = self.urls.get_new_url()
? ? ? ? ? ? ? ? print 'craw %d : %s' % (count,new_url)
? ? ? ? ? ? ? ? #啟動(dòng)下載器下載頁面
? ? ? ? ? ? ? ? html_cont = self.downloader.download(new_url)
? ? ? ? ? ? ? ? #調(diào)用解析器解析頁面數(shù)據(jù),返回新的url列表和新的數(shù)據(jù)
? ? ? ? ? ? ? ? new_urls,new_data = self.parser.parse(new_url,html_cont)
? ? ? ? ? ? ? ? #將新的url補(bǔ)充到管理器
? ? ? ? ? ? ? ? self.urls.add_new_urls(new_urls)
? ? ? ? ? ? ? ? #收集數(shù)據(jù)
? ? ? ? ? ? ? ? self.outputer.collect_data(new_data)
? ? ? ? ? ? ? ? #爬取1000個(gè)目標(biāo)
? ? ? ? ? ? ? ? if count == 1000:
? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? count = count + 1
? ? ? ? ? ? except:
? ? ? ? ? ? ? ? print 'craw failed'
? ? ? ? ? ? #輸出收集好的數(shù)據(jù)
? ? ? ? ? ? self.outputer.output_html()
? ??
#1.首先編寫main函數(shù)
if __name__=="_main_":
? ? #2.編寫入口的url
? ? root_url = "http://baike.baidu.com/view/21087.htm"
? ? obj_spider = SpiderMain()?
? ? #3.啟動(dòng)爬蟲
? ? obj_spider.craw(root_url)
。。。你代碼有沒有貼出來,錯(cuò)誤信息也不講。神也沒辦法給你解決啊
舉報(bào)
本教程帶您解開python爬蟲這門神奇技術(shù)的面紗
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2016-07-29
pydev debugger: starting (pid: 5204),沒運(yùn)行一次,pid后邊的數(shù)就 變一次
2016-07-29
#coding:utf8
from baike_spider import url_manager, html_downloader, html_parser,\
? ? html_outputer
class SpiderMain(object):
? ? #構(gòu)造函數(shù),初始化各個(gè)對(duì)象
? ? def __init__(self):
? ? ? ? #url管理器
? ? ? ? self.urls = url_manager.UrlManager()
? ? ? ? #url下載器
? ? ? ? self.downloader = html_downloader.HtmlDownloader()
? ? ? ? #url解析器
? ? ? ? self.parser = html_parser.HtmlParser()
? ? ? ? #url輸出器
? ? ? ? self.outputer =html_outputer.HtmlOutputer()
? ? ? ??
? ? #爬蟲的調(diào)度程序
? ? def craw(self, root_url):
? ? ? ? #count記錄當(dāng)前爬取的是第幾個(gè)url
? ? ? ? count = 1
? ? ? ? #1.首先將入口url添加入管理器
? ? ? ? self.urls.add_new_url(root_url)
? ? ? ? #啟動(dòng)爬蟲循環(huán),當(dāng)管理器中有url時(shí)
? ? ? ? while self.urls.has_new_url():
? ? ? ? ? ? try:
? ? ? ? ? ? ? ? #獲取一個(gè)待爬取的url
? ? ? ? ? ? ? ? new_url = self.urls.get_new_url()
? ? ? ? ? ? ? ? print 'craw %d : %s' % (count,new_url)
? ? ? ? ? ? ? ? #啟動(dòng)下載器下載頁面
? ? ? ? ? ? ? ? html_cont = self.downloader.download(new_url)
? ? ? ? ? ? ? ? #調(diào)用解析器解析頁面數(shù)據(jù),返回新的url列表和新的數(shù)據(jù)
? ? ? ? ? ? ? ? new_urls,new_data = self.parser.parse(new_url,html_cont)
? ? ? ? ? ? ? ? #將新的url補(bǔ)充到管理器
? ? ? ? ? ? ? ? self.urls.add_new_urls(new_urls)
? ? ? ? ? ? ? ? #收集數(shù)據(jù)
? ? ? ? ? ? ? ? self.outputer.collect_data(new_data)
? ? ? ? ? ? ? ? #爬取1000個(gè)目標(biāo)
? ? ? ? ? ? ? ? if count == 1000:
? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? count = count + 1
? ? ? ? ? ? except:
? ? ? ? ? ? ? ? print 'craw failed'
? ? ? ? ? ? #輸出收集好的數(shù)據(jù)
? ? ? ? ? ? self.outputer.output_html()
? ? ? ??
? ??
#1.首先編寫main函數(shù)
if __name__=="_main_":
? ? #2.編寫入口的url
? ? root_url = "http://baike.baidu.com/view/21087.htm"
? ? obj_spider = SpiderMain()?
? ? #3.啟動(dòng)爬蟲
? ? obj_spider.craw(root_url)
2016-07-29
。。。你代碼有沒有貼出來,錯(cuò)誤信息也不講。神也沒辦法給你解決啊