为了账号安全,请及时绑定邮箱和手机立即绑定

我的代码是用pycharm敲的,为啥到运行的时候报了这个错,求大神解答,谢谢

http://img1.sycdn.imooc.com//59be79d800012e3c13660736.jpg

我感觉没啥错啊,都是对着老师的代码敲得,哭泣

正在回答

4 回答

# 载入url管理器,解析器,下载器,输出器模块
from SpiderBaike import url_manager, html_parser, html_downloader, html_output


# 定义爬虫类
class Spider(object):
    def __init__(self):
        # url管理器类等生成实例对象
        self.url_manager = url_manager.UrlManager()
        self.parser = html_parser.Parser()
        self.downloader = html_downloader.Downloader()
        self.output = html_output.Output()

    def crawl(self, root_url):
        count = 1
        self.url_manager.add(root_url)
        while self.url_manager.has_new():
            try:
                new_url = self.url_manager.get_url()
                print(count)
                print(new_url)
                html_cont = self.downloader.download(new_url)
                new_urls, data = self.parser.parse(new_url, html_cont)
                self.output.get_data(data)
                self.url_manager.add_list(new_urls)
                if count == 10:
                    break
                count = count + 1
            except:
                print('Craw failed')


if __name__ == '__main__':
    root_url = 'https://baike.baidu.com/item/Python'
    obj_spider = Spider()
    obj_spider.crawl(root_url)
发现自己哪里错了,错把__init__ 写成了 __int__了,楼主你应该和我的问题差不多,看看你的__init__方法吧
0 回复 有任何疑惑可以回复我~
#1

程序媛_ 提问者

哈哈哈,我就是因为pycharm敲代码省事,导致没注意__int__和__init__,直接敲回车,后来我检查一遍才发现到,我前几天已经解决掉了,忘了说。
2017-09-25 回复 有任何疑惑可以回复我~
# 载入url管理器,解析器,下载器,输出器模块
from SpiderBaike import url_manager, html_parser, html_downloader, html_output


# 定义爬虫类
class Spider(object):
    def __int__(self):
        # url管理器类等生成实例对象
        self.m_url_manager = url_manager.UrlManager()
        self.m_parser = html_parser.Parser()
        self.m_downloader = html_downloader.Downloader()
        self.m_output = html_output.Output()

    def crawl(self, root_url):
        print(root_url)
        # count = 1
        self.m_url_manager.add(root_url)
        # while self.m_url_manager.has_new():
        #     try:
        #         new_url = self.m_url_manager.get_url()
        #         print(count)
        #         print(new_url)
        #         html_cont = self.m_downloader.download(new_url)
        #         new_urls, data = self.m_parser.parse(new_url, html_cont)
        #         self.m_output.get_data(data)
        #         self.m_url_manager.add_list(new_urls)
        #         if count == 10:
        #             break
        #         count = count + 1
        #     except:
        #         print('Craw failed')


if __name__ == '__main__':
    root_url = 'https://baike.baidu.com/item/Python'
    obj_spider = Spider()
    obj_spider.crawl(root_url)

 我的和你一样报错,怎么解决?

0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//59bf1cf400014de613660736.jpg


他说我第14行出错,哪里错了?伤心

0 回复 有任何疑惑可以回复我~
#1

慕桂英4333026

实例化的 urls 不是url
2018-04-11 回复 有任何疑惑可以回复我~

SpiderMain中的urls变量没有初声明吧

0 回复 有任何疑惑可以回复我~
#1

程序媛_ 提问者

什么意思?怎么初声明???我都是按照老师代码来敲的呢
2017-09-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

我的代码是用pycharm敲的,为啥到运行的时候报了这个错,求大神解答,谢谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信