爬虫学习笔记--拉钩网

Posted 小航哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫学习笔记--拉钩网相关的知识,希望对你有一定的参考价值。

   当通过命令行,根据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:\\PyCharmWorkspace\\SpiderLearning_py35_64\\SpiderLearning_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

 

以上是关于爬虫学习笔记--拉钩网的主要内容,如果未能解决你的问题,请参考以下文章

ruby 爬虫爬取拉钩网职位信息,产生词云报告

爬取拉钩网.记录

爬虫---爬取拉钩信息网

简单粗暴爬取拉钩信息,

python 爬虫系列09-selenium+拉钩

拉勾网爬虫Python代码实现