Python|初識scrapy爬蟲
- 2019 年 10 月 4 日
- 筆記
1
說在前面的話
JAP君在前面也是寫過一些小爬蟲的,其實那些都是爬蟲文件。在學習scrapy之前我們得弄清楚爬蟲文件和爬蟲項目的區別,其實也非常容易理解,爬蟲文件顧名思義就是單個的文件來寫的爬蟲,爬蟲項目顧名思義就是一個大型的爬蟲畢竟都稱之為項目了,我們大家都知道項目是不可能只有單個文件的,它是由許多的文件組成並且每個文件之間有著很大的關聯。
scrapy就是這麼一個寫爬蟲項目的框架,怎麼去玩它呢?今天JAP君帶著大家一步一步來。
2
打仗首先得要有武器—scrapy框架的安裝
其實安裝scrapy特別的簡單,就一句話的事。首先同時按windows鍵+R,然後輸入cmd,最後在cmd中輸入pip install scrapy .
由於JAP君用的是windows10開發只要這麼簡單幾步就行了,但是JAP君從網路上也了解到其他的系統安裝也有許多坑,但是win10安裝也可能有坑,當然有坑的話可以加我們討論群進行解決。
可是很多朋友還是不知道到底有沒有安裝成功,這時你仍然在cmd窗口輸入scrapy命令,若有如下圖的反應,那麼恭喜你安裝成功,可以好好玩耍了

3
有了武器要知道怎麼用它—scrapy的常用指令
我們把scrapy安裝成功後,該怎麼去用了?沒啥感覺啊!接下來我們就正式開始接觸scrapy了!
其實我們的scrapy的操作都是通過命令行來進行的,有些什麼命令呢?
1.scrapy -h (查看所有命令)

從這裡我們可以看到scrapy的大部分命令,例如上面的version,我們就可以如下圖輸入:

2.scrapy startproject spider_name (創建一個項目工程)
這裡我要說明一下,我們使用這個命令之前需要切換到我們自己建的一個文件夾里,然後再輸入這串命令,就會在相應的文件夾中創建這個工程。

大家可以看我的命令輸入,我首先是切換到我自己創建的scrapydemo的文件夾中,然後輸入 scrapy startproject ceshi1 ,這個ceshi1是大家自己定義的。
3.scrapy genspider name domain (構建爬蟲)
估計大家對domain有點懵逼,domain就是你想要爬取的域名,先來看一下一個例子吧。

大家會注意到,我使用這個命令是在我們的項目目錄裡面,因為我們是要在這個項目裡面去構建這個爬蟲,首先ceshi是我們自己定義的名字,baidu.com是我們要爬取的域名,大家這裡估計又會疑惑為啥不是http://www.baidu.com?其實http這個東西是協議,而www是屬於萬維網也不是域名的一部分,所以這裡我們直接輸入baidu.com即可。
至於這串程式碼的具體體現,下面我會說的。
4.scrapy crawl name (運行爬蟲,帶log日誌)和
scrapy crawl name –nolog (運行爬蟲,不帶log日誌)
這個命令咱們到後面來解釋,因為這個需要我們去寫一個簡單的爬蟲,大家只要記住運行爬蟲就用它兩。
4
創建項目之後是個啥樣呢?
通過上面的命令scrapy startproject ceshi1 我們成功的建立了第一個scrapy爬蟲項目,我們來看看到底有些啥?

ceshi1文件夾就是和我們創建是輸入的名字是相同的
scrapy.cfg:爬蟲項目的配置文件
我們在深入一下ceshi1文件夾

第一個文件夾:不必多說,一個快取文件夾
第二個文件夾:就是我們爬蟲的程式碼所在地
__init__.py:爬蟲項目的初始化文件,用來對項目做初始化工作。
items.py:爬蟲項目的數據容器文件,用來定義要獲取的數據。
pipelines.py:爬蟲項目的管道文件,用來對items中的數據進行進一步的加工處理。
settings.py:爬蟲項目的設置文件,包含了爬蟲項目的設置資訊。
middlewares.py:爬蟲項目的中間件文件
然後我們再次深入spiders文件夾

在這裡我們發現了我們之前通過scrapy genspider ceshi baidu.com所生成的ceshi.py的文件。
其實這個項目我們可以用pycharm進行打開並且可以用pycharm進行編寫項目,下次帶大家實戰一個項目的時候會看到的。
5
結尾
我們剛剛初識了一下scrapy框架的一些指令和文件夾,相信大家還是有一點點感覺了,下一篇我會帶著大家利用scrapy框架去實戰一個爬蟲項目。