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 相关文章推荐
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 Python
import的本质解析
Oct 30 Python
python使用json序列化datetime类型实例解析
Feb 11 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
Mar 22 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
Python小进度条显示代码
Mar 05 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
Mar 18 Python
python可迭代对象去重实例
May 15 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
粗暴解决CUDA out of memory的问题
May 22 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
深入探讨PHP中的内存管理问题
2011/08/31 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
PHP中使用CURL获取页面title例子
2015/01/07 PHP
关于php中一些字符串总结
2016/05/05 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PDO::setAttribute讲解
2019/01/29 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
Javascript - HTML的request类
2006/07/15 Javascript
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
Python三级目录展示的实现方法
2016/09/28 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
selenium如何定位span元素的实现
2021/01/13 Python
BONIA波尼亚新加坡官网:皮革手袋,鞋类和配件
2016/08/25 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
文科教师毕业的自我评价
2014/01/16 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书