pycharm创建scrapy项目教程及遇到的坑
最近学习scrapy爬虫框架,在使用pycharm安装scrapy类库及创建scrapy项目时花费了好长的时间,遇到各种坑,根据网上的各种教程,花费了一晚上的时间,终于成功,其中也踩了一些坑,现在整理下相关教程,希望帮助那些遇到和我一样问题的码农。
1、环境
- 操作系统:windows10。
- python版本:python3.7,必须使用Anaconda,目前是Anaconda5.3.1。下载地址:https://www.anaconda.com/download/。 下载64位的安装包。scrapy依赖的类库比较多,使用Anaconda会将相关的依赖的类库都安装好,并且版本保持一致。
- pycharm:pycharm2018。
2、安装Anaconda
安装好Anaconda之后,将下面的变量加入到系统环境变量中:
e:\Anaconda3;e:\Anaconda3\Library\mingw-w64\bin;e:\Anaconda3\Library\usr\bin;e:\Anaconda3\Library\bin;e:\Anaconda3\Scripts;
上面是我本机上的环境变量,我是将Anaconda3安装在E盘的Anaconda3文件夹中。
3、安装scrapy相关类库
打开pycharm,创建一个项目,然后开始安装相关的类库。通过下面的方式查找类库,点击左上角的File按钮,会弹出如下的界面:

点击Settings按钮,会弹出下面的菜单:

然后点击右边的“+”,就会弹出安装类库的界面:

在上图中查询类库,然后点击“Install package”即可安装。
如果查询出的类库显示蓝色,表示这个类库已经安装过了。
按照下面的顺序安装类库:lxml->zope.interface->pyopenssl->twisted->scrapy。一般情况下Anaconda已经安装了很多类库,我们只需安装scrapy即可。
4、创建scrapy项目
安装好scrapy类库之后,就可以创建scrapy项目了,pycharm不能直接创建scrapy项目,必须通过命令行创建,打开pycharm的Terminal终端,输入scrapy startproject test_scrapy命令,就可以创建名为test_scrapy的scrapy项目,看到如下的信息表示成功创建scrapy项目:
New Scrapy project 'test_scrapy', using template directory 'e:\\Anaconda3\\lib\\site-packages\\scrapy\\templates\\project', created in:
G:\PycharmProjects\scrapy\test_scrapy
You can start your first spider with:
cd test_scrapy
scrapy genspider example example.com
然后在pycharm的项目空间中就可以看到test_scrapy项目的目录结构:

通过命令行创建scrapy项目时经常会遇到下面的三个坑:
(1)'scrapy' 不是内部或外部命令,也不是可运行的程序或批处理文件。这是因为没有把Anaconda加入到环境变量中。在安装scrapy时,会将scrapy.exe文件安装到Scripts文件夹下面:

如果没有设置环境变量,将无法找到scrapy.exe文件。
(2)ImportError: DLL load failed: 找不到指定的模块。 这个问题是因为lxml类库版本引起的,在window7操作系统会遇到这个问题。我安装的是4.2.5版本,后来改成3.8.0就解决了。将lxml从4.2.5切换成3.8.0的方法如下:

通过上图的安装类库界面,找到lxml,勾选上Specify version选项,然后选择3.8.0,点击“install package”按钮即可。使用anaconda的好处就是,将lxml切换成3.8.0之后,会把相关的openssl和twisted等类库也切换成匹配的类库,因此强烈推荐使用Anaconda安装python。
(3)ImportError: DLL load failed: 操作系统无法运行 %1。 这个是因为c:/windows/system32目录中的ssleay32.dll和libeay32.dll冲突导致的,我的做法是删除掉这个两个文件,创建好scrapy项目后,在恢复回来。因为删除这两个文件会导致某些应用无法运行。在window10操作系统会遇到这个问题。
本文同步发布与:http://www.bigdata17.com/2018/12/20/pythonscrapy.html
pycharm创建scrapy项目教程及遇到的坑的更多相关文章
- scrapy(一)--Pycharm创建scrapy项目
1.环境 操作系统:windows10. python版本:python3.6,Anaconda(将Anaconda3\Scripts;路径添加到环境变量Path中) pycharm:pycharm2 ...
- 终端创建scrapy项目时报错(转)
在终端创建scrapy项目时报错 PS D:\scrapy_project> scrapy startproject fangFatal error in launcher: Unable to ...
- 爬虫学习笔记(2)--创建scrapy项目&&css选择器
一.手动创建scrapy项目---------------- 安装scrapy: pip install -i https://pypi.douban.com/simple/ scrapy 1 ...
- pycharm创建Flask项目,jinja自动补全,flask智能提示
pycharm创建Flask项目,jinja自动补全,flask智能提示 之前一直都是用在idea里创建空项目然后导入,之后就没有各种的智能提示,在选择文类,选择模板之类的地方就会很麻烦. 步骤1:用 ...
- Pycharm创建Django项目并访问Django
Pycharm创建Django项目并访问Django 一.Django插件 如果没有Django插件,需要先安装Django插件. 1,首先点击Default Settings,打开设置页面: 2,打 ...
- Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查
一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process ...
- 第三百零三节,Django框架介绍——用pycharm创建Django项目
Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
- 一 Django框架介绍——用pycharm创建Django项目
Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
- 使用Pycharm创建Django项目无法创建app.
Python3.7使用Django1.11.7创建Django项目报以下错误时: 在使用Pycharm创建Django项目报以下错误时: Traceback (most recent call las ...
随机推荐
- 第二篇--上传git 代码
准备工作: 首先,注册一个GitHub账号. 接着,新建一个仓库. 最后,下载Git 上传代码步骤: 第一步,新建一个本地文件夹作为本地仓库,进入该文件夹. 右击选择Git Bash Here ,输入 ...
- CentOS kickstart lvm
install url --url=$tree text lang en_US.UTF- keyboard us timezone --utc Asia/Shanghai zerombr bootlo ...
- jq选择器(jq 与 js 互相转换),jq操作css样式 / 文本内容, jq操作类名,jq操作全局属性,jq获取盒子信息,jq获取位置信息
jq选择器(jq 与 js 互相转换) // 获取所有的页面元素jq对象 $('css3选择器语法'); var $box = $(".box:nth-child(1)"); 获取 ...
- 基于jeesite的cms系统(四):使用Beetl模版引擎在后端渲染数据
一.Beetl简介 1. 什么是Beetl Beetl目前版本是2.9.3,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点.使得开发和维护模板有很好的体验. ...
- 一次mysql主从加keepalived配置搭建及切换演示
[需求] 根据需求需要搭建mysql主从架构数据库及加keepalived进行自动切换VIP [环境介绍] 系统环境:CentOS release 6.4 (Final) + Server vers ...
- 【ShaderToy】抗锯齿相关函数
*示例代码可以直接在ShaderToy中运行. *我放在这里咯ShaderToy基础学习中~欢迎交流(ノ>ω<)ノ 先上未抗锯齿的两个圆形图案,可以清楚看清图案边缘像素块,即“锯齿”. 附 ...
- 12、Filter(拦截器)
一.过滤器(Filter):又称拦截器.实现Filter接口的类我们称之为Filter(过滤器或拦截器),Filter可以对用户访问的资源进行拦截.例如:客户端发送请求是,先将请求拦截下来,判断用户是 ...
- RLException: XXX is neither a launch file in package XXX nor is XXX a launch file name问题解决
在运行roslaunch时出现了类似下面的错误: RLException: XXX is neither a launch file in package XXX nor is XXX a launc ...
- delphi 获取时间戳 如何得到 和 js 中 new Date().getTime();的 相同?
new Date().getTime(); //1533213439019 通过,启发 function DateTimeToUnix(const AValue: TDateTime): Int64 ...
- git上传到版本库报错:Pull is not possible because you have unmerged files(已解决)
问题所在:操作次数太多,第一次报错之删掉了.git并没有删除下面两个文件 才报了题述错误. 解决办法: 将这三个文件都删除在重新运行所有指令.