為Scrapy專案提供多個Spider

2021-09-11 16:45:10 字數 1571 閱讀 3215

scrapy startproject project name
在終端輸入上述命令後,會根據生成乙個完整的爬蟲專案

此時的專案樹如下

|-- jobcrawler

|-- __init__.py

|-- items.py

|-- middlewares.py

|-- pipelines.py

|-- settings.py

`-- spiders

|-- __init__.py

|-- spider.py

scrapy.cfg

可以看到缺省會生成乙個名為spider.py的檔案供我們編寫spider.

如果這個時候我們要再寫多乙個spider, 但是不想手動去配置相應的檔案, 可以用以下命令生成乙個spider

# domain 網域名稱

scrapy genspider [options] name domain

options可以選擇自己需要的引數, 若留空, 則預設使用basic模板生成spider

這裡我們以要爬取某**首頁入口為例, 生成乙個entrancespider.

scrapy會為我們在spiders資料夾中生成乙個entrance.py. 根據需要, 再item.py中新增相應的字段.

當我們編寫完**後可能會遇到乙個問題, 在我們準備使用這個新的spider爬蟲的時候, 並不準備讓以前spiderpipeline應用到新的spider身上.

一種笨的方法是, 你在用某個spider的時候, 先注釋掉無關的pipeline設定(在settings.py中). 然而這並非長久之計, 且十分反程式猿, 何況後面我們還要考慮到多個spider併發的情況.

在看了一下spider的變數之後, 顯然(逃, 我們可以用spidername值來輕鬆指定.

在我們pipeline.py中, 為需要區分spider的方法新增乙個spider引數, 主要是process_item(self, item, spider),close_spider(self, spider)以及open_spider(self, spider), 寫一行if就搞定啦

if spider.name == 'jobcrawler':
後面再更新多個併發的情形

scrapy 五 scrapy專案二

在之前的基礎上,新增多個url進行爬取,第一種是將需要爬取的 都列出來,在start urls中 在basic.py中 start urls 第二種是如下寫法 start urls i.strip for i in open todo.urls.txt readlines 水平爬取就是next pa...

建立scrapy專案

1.windows r開啟 cmd命令列工具,cd desktop 進入到桌面目錄 2.輸入建立專案命令 scrapy startproject 專案名 3.cd 到 專案目錄下 cd專案名 4.執行建立爬蟲的命令 scrapy genspider 爬蟲名 爬蟲起始 5.使用pycharm開啟專案,...

Scrapy 專案步驟

1.建立專案 scrapy starproject 專案名 2.編寫 items.py檔案 設定需要儲存的資料字段,明確想要抓取的目標,用來儲存爬到的資料。3.建立爬蟲 scrapy genspider 爬蟲名 爬取的 4.進入專案專案名 spiders 3個預設建立的 name 編寫爬蟲檔案,檔案...