pycharm創(chuàng)建scrapy項目教程及遇到的坑解析
前言
最近學習scrapy爬蟲框架,在使用pycharm安裝scrapy類庫及創(chuàng)建scrapy項目時花費了好長的時間,遇到各種坑,根據(jù)網(wǎng)上的各種教程,花費了一晚上的時間,終于成功,其中也踩了一些坑,現(xiàn)在整理下相關(guān)教程,希望幫助那些遇到和我一樣問題的碼農(nóng)。
1、環(huán)境
- 操作系統(tǒng):windows10。
- python版本:python3.7,必須使用Anaconda,目前是Anaconda5.3.1。下載地址:https://www.anaconda.com/download/ 下載64位的安裝包。scrapy依賴的類庫比較多,使用Anaconda會將相關(guān)的依賴的類庫都安裝好,并且版本保持一致。
- pycharm:pycharm2018。
2、安裝Anaconda
安裝好Anaconda之后,將下面的變量加入到系統(tǒng)環(huán)境變量中:
e:\Anaconda3;e:\Anaconda3\Library\mingw-w64\bin;e:\Anaconda3\Library\usr\bin;e:\Anaconda3\Library\bin;e:\Anaconda3\Scripts;
上面是我本機上的環(huán)境變量,我是將Anaconda3安裝在E盤的Anaconda3文件夾中。
3、安裝scrapy相關(guān)類庫
打開pycharm,創(chuàng)建一個項目,然后開始安裝相關(guān)的類庫。通過下面的方式查找類庫,點擊左上角的File按鈕,會彈出如下的界面:

點擊Settings按鈕,會彈出下面的菜單:

然后點擊右邊的“+”,就會彈出安裝類庫的界面:

在上圖中查詢類庫,然后點擊“Install package”即可安裝。
如果查詢出的類庫顯示藍色,表示這個類庫已經(jīng)安裝過了。
按照下面的順序安裝類庫:lxml->zope.interface->pyopenssl->twisted->scrapy。一般情況下Anaconda已經(jīng)安裝了很多類庫,我們只需安裝scrapy即可。
4、創(chuàng)建scrapy項目
安裝好scrapy類庫之后,就可以創(chuàng)建scrapy項目了,pycharm不能直接創(chuàng)建scrapy項目,必須通過命令行創(chuàng)建,打開pycharm的Terminal終端,輸入scrapy startproject test_scrapy命令,就可以創(chuàng)建名為test_scrapy的scrapy項目,看到如下的信息表示成功創(chuàng)建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項目的目錄結(jié)構(gòu):

通過命令行創(chuàng)建scrapy項目時經(jīng)常會遇到下面的三個坑:
(1)'scrapy' 不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件。這是因為沒有把Anaconda加入到環(huán)境變量中。在安裝scrapy時,會將scrapy.exe文件安裝到Scripts文件夾下面:

如果沒有設(shè)置環(huán)境變量,將無法找到scrapy.exe文件。
(2)ImportError: DLL load failed: 找不到指定的模塊。 這個問題是因為lxml類庫版本引起的,在window7操作系統(tǒng)會遇到這個問題。我安裝的是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之后,會把相關(guān)的openssl和twisted等類庫也切換成匹配的類庫,因此強烈推薦使用Anaconda安裝python。
(3)ImportError: DLL load failed: 操作系統(tǒng)無法運行 %1 。 這個是因為c:/windows/system32目錄中的ssleay32.dll和libeay32.dll沖突導(dǎo)致的,我的做法是刪除掉這個兩個文件,創(chuàng)建好scrapy項目后,在恢復(fù)回來。因為刪除這兩個文件會導(dǎo)致某些應(yīng)用無法運行。在window10操作系統(tǒng)會遇到這個問題。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決python "No module named pip"的問題
今天小編就為大家分享一篇解決python "No module named pip"的問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Pandas數(shù)據(jù)結(jié)構(gòu)詳細說明及如何創(chuàng)建Series,DataFrame對象方法
本篇文章中,我們主要側(cè)重于介紹Pandas數(shù)據(jù)結(jié)構(gòu)本身的特性,以及如何創(chuàng)建一個Series或者DataFrame數(shù)據(jù)對象,并填入一些數(shù)據(jù)2021-10-10
python 如何將兩個實數(shù)矩陣合并為一個復(fù)數(shù)矩陣
這篇文章主要介紹了使用python實現(xiàn)將兩個實數(shù)矩陣合并為一個復(fù)數(shù)矩陣的操作,具有很好的參考價值,希望對大家有所幫助。2021-05-05
Python構(gòu)建XML樹結(jié)構(gòu)的方法示例
這篇文章主要介紹了Python構(gòu)建XML樹結(jié)構(gòu)的方法,結(jié)合實例形式分析了Python創(chuàng)建與打印xml數(shù)結(jié)構(gòu)的實現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
詳解利用Python scipy.signal.filtfilt() 實現(xiàn)信號濾波
這篇文章主要介紹了詳解利用Python scipy.signal.filtfilt() 實現(xiàn)信號濾波,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-06-06

