#scrapy框架是什么:
#####scrapy是用純Python實現(xiàn)的一個為了爬去網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)數(shù)據(jù)而編寫的應(yīng)用框架.
scrapy框架的工作流程:![scrapy.jpeg](https://upload-images.jianshu.io/upload_images/9879502-9957aa2df11ded61.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
```
#個個模塊之間的作用:
Scrapy Engine(引擎): 負責Spider、ItemPipeline孤荣、Downloader跪但、Scheduler中間的通訊橡类,信號澄成、數(shù)據(jù)傳遞等蛛枚。
Scheduler(調(diào)度器): 它負責接受引擎發(fā)送過來的Request請求雌澄,并按照一定的方式進行整理排列,入隊每篷,當引擎需要時瓣戚,交還給引擎里初。
Downloader(下載器):負責下載Scrapy ##Engine(引擎)發(fā)送的所有Requests請求远剩,并將其獲取到的Responses交還給Scrapy ##Engine(引擎),由引擎交給Spider來處理募胃,
Spider(爬蟲):它負責處理所有Responses,從中分析提取數(shù)據(jù)矗晃,獲取Item字段需要的數(shù)據(jù)仑嗅,并將需要跟進的URL提交給引擎,再次進入Scheduler(調(diào)度器)张症,
Item Pipeline(管道):它負責處理Spider中獲取到的Item仓技,并進行進行后期處理(詳細分析、過濾俗他、存儲等)的地方.
Downloader Middlewares(下載中間件):你可以當作是一個可以自定義擴展下載功能的組件脖捻。
#Spider Middlewares(Spider中間件):你可以理解為是一個可以自定擴展和操作引擎和##Spider中間通信的功能組件(比如進入Spider的Responses;和從Spider出去的Requests)
```
![c893ae3b-5557-4649-9b48-c8748d3936cd.png](https://upload-images.jianshu.io/upload_images/9879502-ea12c4f8aa5ef9c9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
##介紹完了scrapy的工作流程之后我們就可以開始爬蟲項目了!!
>1:新建一個項目: scapy startproject 我的爬蟲名稱
>項目新建完成之后我們要進入spider文件下再創(chuàng)建你的爬蟲文件, scrapy genspider 爬蟲文件名稱 爬蟲域
創(chuàng)建完了項目之后我們就可一制作我們的爬蟲了打開我們創(chuàng)建的爬蟲文件,我們可以看到默認代碼如下:
-*- coding: utf-8 -*-
import scrapy
class JobboleSpider(scrapy.Spider):
? ? name = '爬蟲名稱'
? ? allowed_domains = ['默認域']
? ? start_urls = ['起始URL']
? ? def parse(self, response):
? ? ? ? pass
再然后就可以直接使用選擇器進行獲取數(shù)據(jù)了
#scrapy框架是什么:
#####scrapy是用純Python實現(xiàn)的一個為了爬去網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)數(shù)據(jù)而編寫的應(yīng)用框架.
scrapy框架的工作流程:![scrapy.jpeg](https://upload-images.jianshu.io/upload_images/9879502-9957aa2df11ded61.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
```
#個個模塊之間的作用:
Scrapy Engine(引擎): 負責Spider、ItemPipeline拯辙、Downloader郭变、Scheduler中間的通訊,信號涯保、數(shù)據(jù)傳遞等诉濒。
Scheduler(調(diào)度器): 它負責接受引擎發(fā)送過來的Request請求,并按照一定的方式進行整理排列夕春,入隊未荒,當引擎需要時,交還給引擎及志。
Downloader(下載器):負責下載Scrapy ##Engine(引擎)發(fā)送的所有Requests請求片排,并將其獲取到的Responses交還給Scrapy ##Engine(引擎),由引擎交給Spider來處理速侈,
Spider(爬蟲):它負責處理所有Responses,從中分析提取數(shù)據(jù)率寡,獲取Item字段需要的數(shù)據(jù),并將需要跟進的URL提交給引擎倚搬,再次進入Scheduler(調(diào)度器)冶共,
Item Pipeline(管道):它負責處理Spider中獲取到的Item,并進行進行后期處理(詳細分析、過濾捅僵、存儲等)的地方.
Downloader Middlewares(下載中間件):你可以當作是一個可以自定義擴展下載功能的組件家卖。
#Spider Middlewares(Spider中間件):你可以理解為是一個可以自定擴展和操作引擎和##Spider中間通信的功能組件(比如進入Spider的Responses;和從Spider出去的Requests)
```
![c893ae3b-5557-4649-9b48-c8748d3936cd.png](https://upload-images.jianshu.io/upload_images/9879502-ea12c4f8aa5ef9c9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
##介紹完了scrapy的工作流程之后我們就可以開始爬蟲項目了!!
>1:新建一個項目: scapy startproject 我的爬蟲名稱
>項目新建完成之后我們要進入spider文件下再創(chuàng)建你的爬蟲文件, scrapy genspider 爬蟲文件名稱 爬蟲域
創(chuàng)建完了項目之后我們就可一制作我們的爬蟲了打開我們創(chuàng)建的爬蟲文件,我們可以看到默認代碼如下:
-*- coding: utf-8 -*-
import scrapy
class JobboleSpider(scrapy.Spider):
? ? name = '爬蟲名稱'
? ? allowed_domains = ['默認域']
? ? start_urls = ['起始URL']
? ? def parse(self, response):
? ? ? ? pass
再然后就可以直接使用選擇器進行獲取數(shù)據(jù)了