pycharm创建scrapy项目教程及遇到的坑解析


Posted in Python onAugust 15, 2019

前言

最近学习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按钮,会弹出如下的界面:

pycharm创建scrapy项目教程及遇到的坑解析

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

pycharm创建scrapy项目教程及遇到的坑解析

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

pycharm创建scrapy项目教程及遇到的坑解析

在上图中查询类库,然后点击“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项目的目录结构:

pycharm创建scrapy项目教程及遇到的坑解析

通过命令行创建scrapy项目时经常会遇到下面的三个坑:

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

pycharm创建scrapy项目教程及遇到的坑解析

如果没有设置环境变量,将无法找到scrapy.exe文件。

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

pycharm创建scrapy项目教程及遇到的坑解析

通过上图的安装类库界面,找到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操作系统会遇到这个问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
一些Python中的二维数组的操作方法
May 02 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
Python实现读取文件最后n行的方法
Feb 23 Python
Python中enumerate函数代码解析
Oct 31 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
django框架模板语言使用方法详解
Jul 18 Python
Python中pymysql 模块的使用详解
Aug 12 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 Python
Python基本知识点总结
Apr 07 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 #Python
Python依赖包整体迁移方法详解
Aug 15 #Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 #Python
python 修改本地网络配置的方法
Aug 14 #Python
python django 原生sql 获取数据的例子
Aug 14 #Python
django 连接数据库 sqlite的例子
Aug 14 #Python
Python将主机名转换为IP地址的方法
Aug 14 #Python
You might like
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
php获取域名的google收录示例
2014/03/24 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
php实现微信发红包功能
2018/07/13 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
Javascript事件热键兼容ie|firefox
2010/12/30 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Python super()方法原理详解
2020/03/31 Python
Python json转字典字符方法实例解析
2020/04/13 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
淘宝店铺营销方案
2014/02/13 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
龙门石窟导游词
2015/02/02 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python