请问下有3.6版本的么 我这边报错不能运行

from baike_spider import html_downloader

from baike_spider import html_outputer

from baike_spider import html_parser

from baike_spider import url_manager




class SpiderMain:


#     这里定义SpiderMain类的一些属性。这样就可以创建对象后直接调用。     

    def __init__(self):

        self.urls = url_manager.UrlManager()

        self.downloader = html_downloader.HtmlDownloader()

        self.parser = html_parser.HtmlParser()

        self.outputer = html_outputer.HtmlOutputer()


#       正式的craw爬取主函数。


    def craw(self, root_url):

        count = 1

        self.urls.add_new_url(root_url)

#         把根url添加到new_url列表,这应该没什么问题。

                

        for x in range(1000):

#             1000随意改。不过单线程比较慢。之后会讲解异步爬取和多线程的。

            try:

                new_url = self.urls.get_new_url() # 添加单个url

                print('craw%d : %s' %(count, new_url))

                html_cont = self.downloader.download(new_url)



                new_urls,new_data = self.parser.parser(new_url, html_cont)

                self.urls.add_new_urls(new_urls)  # 添加批量url

                self.outputer.collect_data(new_data)

                

            except AttributeError:

                print('here is a bug, jump')



            count = count+1


 self.outputer.output_data()    # 就这里报错



# 主程序的入口。 只要是看到 if __name__ =="__mian__": , 就是整个程序从这里开始的地方。在这里调用各种方法。

if __name__=="__main__":

    

    # root_url = "http://baike.baidu.com/item/Python"  "

    root_url = "http://baike.baidu.com/item/Python"

    obj_spider = SpiderMain()

    obj_spider.craw(root_url)




0094
浏览 1141回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python