zoukankan      html  css  js  c++  java
  • 爬虫学习笔记(4)--拉钩网

       当通过命令行,根据crawl模板生成spider时,

       执行scrapy genspider -t crawl lagou www.lagou.com 

       出现如下报错(图三):

       原因是项目中已有的一句代码:

    from items import JobBoleArticleItem,ArticleItemLoader

       就是因为命令行格式不能像pycharm那样,命令行不会把你的source root放进pathon path 中,所以命令行找不到item

    图3

    解决方法:

    方法一:

    from items import JobBoleArticleItem,ArticleItemLoader
    改为

    from SpiderLearning_py35_64.items import JobBoleArticleItem,ArticleItemLoader

    方法二:

    第一步、在setting文件中增加以下代码

    #获得SpiderLearning_py35_64的目录,也就是E:PyCharmWorkspaceSpiderLearning_py35_64SpiderLearning_py35_64,将其添加到path中
    import os
    project_dir = os.path.abspath(os.path.dirname(__file__))#os.path.dirname(__file__)获得父文件名称
    
    import sys
    sys.path.insert(0,project_dir) #0是优先级

    第二步:这时运行添加crawl spider命令就不会报错了.

    原理介绍

    ==============================================================================

    爬虫项目的目录结构是这样的:

    把项目目录下的 SpiderLearning_py35_64设置为Sources root ,pycharm会将Sources root的目录添加到python path中,类似环境变量,如图2。当代码中导入什么东西,会自动去python path下面找。

     例如:如果不把SpiderLearning_py35_64设置为Sources root,那么下面这句代码会报错

    from items import JobBoleArticleItem,ArticleItemLoader
    改为下面这样才可以:
    from SpiderLearning_py35_64.items import JobBoleArticleItem,ArticleItemLoader

  • 相关阅读:
    事件模型
    用jQ实现一个简易计算器
    自学如何去学习jQuery
    用原生的javascript 实现一个无限滚动的轮播图
    Android 代码注解初学者
    安卓实现textView次行缩进效果
    安卓 checkBox添加左边距
    安卓 垂直SeekBar
    安卓 API 19 低版本设置单选按钮替换
    安卓BLE测试apk
  • 原文地址:https://www.cnblogs.com/SuMeng/p/8981515.html
Copyright © 2011-2022 走看看