请问no module named xxx.spiders报错怎么解决

我初学scrapy爬虫,在github上下载了一个工程用pycharm运行了一下是没有问题的,然后在cmd中通过scrapy crawl xiaohuar 的命令运行爬虫的时候出现了 no module named xiaohuar.spiders 的报错

代码如下:

#coding=utf-8
import scrapy
import re
import os
import urllib
from scrapy.selector import Selector
from scrapy.http import HtmlResponse, Request

class Xiaohuar_spider(scrapy.spiders.Spider):
name = "xiaohuar"

allowed_domains = ["xiaohuar.com"] # 搜索的域名范围,也就是爬虫的约束区域,规定爬虫只爬取这个域名下的网页

start_urls = ["http://www.xiaohuar.com/list-1-1.html"]

该函数名不能改变,因为Scrapy源码中默认callback函数的函数名就是parse

def parse(self, response):
current_url = response.url # 爬取时请求的url
body = response.body # 返回的html
unicode_body = response.body_as_unicode() # 返回的html unicode

hxs = Selector(response) # 创建查询对象,HtmlXPathSelector已过时

if re.match('http://www.xiaohuar.com/list-1-\d+.html', response.url): # 如果url能够匹配到需要爬取的url,就爬取
items = hxs.xpath('//div[@class="item_list infinite_scroll"]/div') # 匹配到大的div下的所有小div(每个小div中包含一个图片)

for i in range(len(items)): # 遍历div个数
src = hxs.xpath(
'//div[@class="item_list infinite_scroll"]/div[%d]//div[@class="img"]/a/img/@src' % i).extract() # 查询所有img标签的src属性,即获取校花图片地址
name = hxs.xpath(
'//div[@class="item_list infinite_scroll"]/div[%d]//div[@class="img"]/span/text()' % i).extract() # 获取span的文本内容,即校花姓名
school = hxs.xpath(
'//div[@class="item_list infinite_scroll"]/div[%d]//div[@class="img"]/div[@class="btns"]/a/text()' % i).extract() # 校花学校

if src:
absoluteSrc = "http://www.xiaohuar.com" + src[
0] # 拼接实际路径,因为.extract()会返回一个list,但是我们是依次取得div,所以是取第0个
file_name = "%s_%s.jpg" % (school[0], name[0]) # 拼接文件名,学校_姓名
file_path = os.path.join("E:\file", file_name) # 拼接这个图片的路径下
urllib.urlretrieve(absoluteSrc, file_path) # 接收文件路径和需要保存的路径,会自动去文件路径下载并保存到我们指定的本地路径

all_urls = hxs.xpath('//a/@href').extract() # 提取界面所有的url
for url in all_urls: # 遍历获得的url,如果满足条件,继续爬取
if url.startswith('http://www.xiaohuar.com/list-1-'):
yield Request(url, callback=self.parse)

图片说明
整个工程的文件就是这样
请问各位大神这个问题出在哪里,怎么解决呢?

0

1个回答

这是因为调用的方法不在同一个目录下面,pycharm能够找到,但是在cmd上或者Linux系统上运行,就会出错;你可以在首行加入以下代码:

import sys
reload(sys)
sys.path.append("../")

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python 报错:No module named 'requests 解决办法
解决python 报错:No module named 'requests 解决办法
caffe python error: No module named google.protobuf.internal
解决Windows下caffe Python报错:Import Error No module named google.protobuf.internal.
lr_urils解决python导包问题
解决在导入lr_urils包时ModuleNotFoundError: No module named 'lr_utils'的报错问题,希望有所帮助,多谢
强化学习中ImportError: No module named tensorflow等问题汇总及解决方法
问题1: ImportError: No module named gym #32 solution: pip install gym   问题2: mac上采用多种方法安装好tensorflow,但就是找不到 ImportError: No module named tensorflow solution: 记住pip前面要加上sudo,否则系统会提示报错。   问题...
Windows下运行python脚本报错“ImportError: No Module named ...”的解决方法
之前遇到一个问题,在Pycharm或IPython之类的IDE上运行脚本正常,但是直接运行或cmd命令行运行的时候报了模块未能找到的 误——ImportError: No Module named ...。 这是啥情况? Python在启动解释器(Interpreter)的时候不光会导入环境变量中sys.path发现的模块,还会导入当前工作目录下的模块。当你在IDE中启动解释器时,
导致ImportError: No module named 'xxx'问题的两种原因以及解决方案
导致ImportError: No module named 'xxx'问题的两种原因以及解决方案 文件路径问题,工程路径问题
scrapy项目命令行执行报错:No module named:***解决办法
一、问题描述一般scrapy项目结构是这样的:要执行的文件路径:D:\py_workspace\my_scrapy_prjs\jianshu_spider\jianshu\spiders\jianshu_sp.py,在此目录下打开命令行执行python jianshu_sp.py报错:No module named 'jianshu'。报错原因:import语句如下:from jianshu.it...
Linux . 运行 Python 程序,调用自己的模块报错No module named 'XXX' ——解决方案:添加到PYTHONPATH
该模块必须PYTHONPATH上,否则在导入该模块时会出现找不到该模块的错误,即必须把所需要的模块的路径添加到PYTHONPATH中 解决方案: (1) 在~/.bashrc 中输出环境变量 export PYTHONPATH=$PYTHONPATH:模块路径 (2) 激活 source /etc/profile ...
ImportError: No module named _tkinter和tk安装时缺乏依赖关系的解决
学习Python过程中使用到了turtle模块,import turtle发现并没有安装tk,但是安装却始终缺少依赖关系,于是又开始了一段学习之路. 标准解法 $ sudo apt-get install python-tk (download&install tk) 大部分人看到这里应该问题已经解决了,但是如果安装时出现缺乏一大堆依赖关系的问题,请往下看! 然...
解决yum出现“No module named yum”错误方法
1.ls /usr/bin |grep python 修改yum文件 #vi /usr/bin/yum 将 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
【填坑】用pycharm连接Elasticsearch,报错,没解决,留坑
想用pycharm链接Elasticsearch,但是报错了,这里记录解决方法: 报错:ModuleNotFoundError:No module named 'fcntl'   其中访问地址:localhost:9200/索引/类型/id/_source 如:http://localhost:9200/megacorp/employee/1/_source 解决过程: fcnl问...
No module named _curses 解决资源
问题ImportError: No module named _curses解决资源 问题解决地址 http://blog.csdn.net/qq_19299071/article/details/56013485
cpu_nms.py
重写覆盖原模型中使用的 cpu_nms.pyx, 解决碰到的 ModuleNotFoundError: No module named 'utils.nms.cpu_nms' 报错
yum出现“No module named yum”错误解决方法
安装了一个yum-downloadonly,发现yum无法使用,报错信息如下 ------------------------------------------------------------------------------------------------ There was a problem importing one of the Python module
ubuntu系统中import h5py, ImportError: No module named h5py的解决方法
ubuntu系统中import h5py, ImportError: No module named h5py的解决方法
No module named pycurl(无法使用yum和pip的情况下的解决方案)
云服务器上碰到的问题,版本是: CentOS Linux release 7.4.1708 (Core) 稍微讲下怎么回事,听网上说,yum是python写的 输入命令:yum update 报错如下: There was a problem importing one of the Python modules required to run yum. The error l
Flask导包错误
flask编译错误 :错误提示:from flask_bootstrap import Bootstrap ImportError: No module named flask_bootstrap 类似错误的有 from flask_nav import Nav ImportError: No module named flask_nav可以使用更新一下系统包 pip install --upgra
关于PyCharm导入自己写的module时报错:No Module Named 的解决方案
    闲暇之余接触了PyCharm,但是创建Python项目之后,import报错,当然首先要读报错信息No Module Named tensorflow,emmmmm...并没有什么收获,然后百度报错信息,网友们的情况与我也有诸多的出入……然后我转念一想...创建项目的时候是不是缺了点什么东西,于是,看下图……    Inherit global site-packages一定要打勾……In...
执行python脚本报错No module named requests解决方法
首先需要先安装下pip       根目录执行命令  yum install python-pip 然后安装requests,                                      pip install requests python2.6下这样是可以成功安装的,但其它版本根据网上的资料看可能有问题,需要编译源码安装
使用 Python 安装 xlutils 出错
// Python 版本:2.7.4 // xlutils 版本:1.6.0 // 系统:Windows 7 64 bit 在 cmd 下执行命令 python setup.py install 出现如下错误: Traceback (most recent call last):   File "setup.py", line 5, in    
Python爬虫问题2【已解决】
2018-05-17 14:49为了设置随机的UA,我在spyder写了如下,加载fake_useragent库:from fake_useragent import UserAgent结果显示:ModuleNotFoundError: No module named 'fake_useragent'百度了各种解答,有说是下载了多个python的原因等等我自己只下载了Anaconda3 ,并没有多...
出现No module named numpy的解决办法
环境:python2.7.1+window7+vs2012 今天安装numpy的时候总是提示错误,第一个错误是unable to find vcvarsall.bat,原因是python使用的是visual c++ 2008的编译器,而我的vs是2012版本,所以需要修改,方法: 命令行中输入SET VS90COMNTOOLS=%VS110COMNTOOLS%; 如果你是其他版本,参
Scrapy爬虫运行常见报错及解决
按照指南上搭建好了Scrapy的环境,该装的都装好了,参考教程是: http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html 按照第一个Spider代码练习,保存在tutorial/spiders目录下的dmoz_spider.py文件中: import scrapy class DmozSpider(s...
关于PyCharm导入自己写的module时报错:No Module Named XXX的解决方案(转)
转自:https://blog.csdn.net/u012654847/article/details/71104470 在使用PyCharm时经常碰到import自己写的py脚本时提示模块未被定位,导致导入失败。 一起来看一个例子: 目录结构: ---实际写的代码       ----Interface           ------vpn_check.py       Test...
使用scrapy做爬虫遇到的一些坑:导入Module的时候总显示no module named ×××.items?
估计很多人和我遇到过这样的坑,就是scrapy做爬虫时,导入Module的时候总显示no module named ×××.items?可是检查很多遍都没发现什么大问题啊?我明明是按照教程来打的案例!!!原来这是因为编译器的问题,pycharm不会将当前文件目录自动加入自己的sourse_path。那么具体的解决方法如下:1,找到你的scrapy项目上右键2.然后点击make_directory ...
python导入模块出现ImportError: No module named '...'问题解决方法总结
问题描述:在导入自己写的模块的时候,有时候会出现问题:ImportError: No module named 'xxx',前人已经总结的方法如下:(1) 使用sys.path.append来添加路径, 具体如下:import syssys.path.append("/path/your/code")(2)使用PYTHONPATH环境变量(3)将py文件放到site-packages目录下(4)使...
Python处理验证码第一篇(pytesser初探及报错处理)
前言:春节期间,无法全身心投入地去写爬虫,那就玩玩验证码吧,应该比较有趣!首次接触验证码识别,用pytesser接触一下最简单的验证码先,代码参照:使用python以及工具包进行简单的验证码识别。具体细节可以参见原文,里面安装和报错处理没有详细记录,我在此处主要记录一下自己的安装及处理过程。 效果:可识别以下类型的验证码: 正文:代码:# encoding=utf-8 from
ROS(基于RK3399)运行rbx1例程出现 cv2.cv import no module cv错误的解决办法
         最近入手了RK3399 ,在上面装了ROS运行成功以后,为了进一步测试RK3399的性能,想运行下ros by example 下的rbx1中的rbx1_vision 包 ,结果在运行roslaunch  rbx1_vision  face_tracker.launch的时候,报错误 cv2.cv import no module cv的错误。         出现错误以后,查看...
Python3中出现“No module named 'StringIO'”错误处理方法
 Python3中已将StringIO归入io,调用方法如下: import io iost = io.StringIO()  
python嵌入错误‘No module named site’的解决方案
致命错误:ImportError: No module named site 原因:python解释器无法找到python库。 解决办法: 方法1.在调用Py_Initialize之前,手动设置python搜索目录:Py_SetPythonHome("F:/workspace/test/python")。 方法2.添加python环境变量:PYTHONPATH。 转载注明出处:h
No module named 'MySQLdb'(第一次django下创建数据库迁移,报错)
运行环境:ubuntu14.04 python3.5.2 django1.8.17第一次django下创建数据库迁移 运行命令为:python manage.py makemigrations blog报错信息: django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named
ImportError: No module named cv2的完美解决方法!!!(不能太赞)
      此刻是2018年1月21日晚10点13分,我怀着激动的心情,从Ubuntu系统上登上我的CSDN博客然后发来贺电,祝贺我自己解决了ImportError: No module named cv2的问题,这仿佛是从另一个世界(Ubuntu世界)向现实世界(windows世界)通话,很奇妙!        事情还要从遥远的下午4点半说起,那是时候我还是个孩子,天真烂漫的孩子,在我的Ubun...
cmd命令行交互执行python引入模块时提示ImportError: No module named xxx
1、我的目录结构: 2、cmd报错: 3、如何解决: 创建PYTHONPATH 变量,在这个环境变量中输入相关的路径,不同的路径之间用英文逗号分开 这里的路径会自动加入到sys.path中,永久存在于sys.path中而且可以在不同的python版本中共享,应该是一样较为方便的方法。 现在来看cmd中执行: 如果是工程根目录下的,就直接import 模块
解决问题:启动Python时报“ImportError: No module named site”错误
记录Python启动问题解决过程和方法。 解决问题:启动Python时总是报“ImportError: No module named site”这个错误。
lxml包引入错误
在使用第三方包lxml引入etree模块时报错: >>> from lxml import etree Traceback (most recent call last): File "", line 1, in ? ImportError: dynamic module does not define init function (initetree)   由于之前安装是直接使用源码包进行
pygexf包用于Python3:解决No module named'_gexf'的方法
pygexf包使用Python2进行编写,在Python3中引用会出现No module named'_gexf'的错误。 做了如下更改: 1、gexf 文件夹中的__init__.py,将所有的__gext之前加’.’。 2、_gexf.py文件:print 后加括号,将 except Exception , e 改为 except Exception as e,将不等于号 <> 改为 != 。 更改完毕后可以可以通过from gexf import Gexf引入。
python3使用django出现错误No module named ‘MySQLdb’解决办法
问题python3  在使用django引入mysql的时候出现如下错误:查阅资料以后发现:django 连接mysql默认驱动是MySQLdb,MySQLdb没有支持python3的版本,如果使用python3.x版本时,django连接mysql的方法1、使用pymysql替换MySQLdb在配置文件同目录下的__init__.py文件中加入以下代码:1 import pymysql2 pym...
成功解决打包时不能import自定义的包或库出现运行exe时No module named 缺少包
解决问题打包时不能import自定义的包或库的情况解决思路直接将包移动到系统默认提取库的文件夹内
python模块以及导入出现ImportError: No module named 'xxx'问题(有效解决)
python模块以及导入出现ImportError: No module named 'xxx'问题   1.常见的就不说了,网上一大堆 2.切记程序名字不要和包的名字一样
使用yum安装软件时报错:No module named yum
使用yum安装软件时报错:No module named yum
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链解决 人工智能解决夜班