spider_main代碼
#?-*-?coding:?utf-8?-*-
import?url_manager,html_downloader,html_parser,html_outputer
class?SpiderMain(object):
????def?__init__(self):
????????self.urls?=?url_manager.UrlManager()
????????self.downloader?=?html_downloader.HtmlDownloader()
????????self.parser?=?html_parser.HtmlParser()
????????self.outputer=html_outputer.HtmlOutputer()
????def?craw(self,root_url):
????????count?=?1;
????????self.urls.add_new_url(root_url)
????????while?self.urls.has_new_url():
????????????try:
????????????????new_url?=?self.urls.get_new_url()
????????????????print?'craw?%d?:?%s'%(count,?new_url)
????????????????html_cont?=?self.downloader.download(new_url)
????????????????new_urls,new_data?=?self.parser.parse(new_url,html_cont)
????????????????self.urls.add_new_urls(new_urls)
????????????????self.outputer.collect_data(new_data)
????????????????if?count?==?1000:
????????????????????break
????????????????count?=?count?+?1
????????????except:
????????????????print?'craw?failed'
????????self.outputer.output_html()
if?__name__=='__main__':
????root_url?=?"http://baike.baidu.com/view/21087.html"
????obj_spider?=?SpiderMain()
????obj_spider.craw(root_url)

2018-07-19
我的也是這個問題response =request.urlopen(url)爬取到的只有頭標簽的內容還不完整。。
2018-07-04
這個路徑訪問失敗吧?我看現在百科路徑不是這個了,所以沒有新的待爬取路徑產生。。你改成現在的試試,包括爬取目標的格式也變了