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框架去實戰一個爬蟲項目。