用python爬取非小號(hào)數(shù)字貨幣

Scrapy爬蟲框架

Scrapy是一個(gè)為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架。 其可以應(yīng)用在數(shù)據(jù)挖掘,信息處理或存儲(chǔ)歷史數(shù)據(jù)等一系列的程序中。其最初是為了頁面抓取 (更確切來說, 網(wǎng)絡(luò)抓取 )所設(shè)計(jì)的, 也可以應(yīng)用在獲取API所返回的數(shù)據(jù)(例如 Amazon Associates Web Services ) 或者通用的網(wǎng)絡(luò)爬蟲。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動(dòng)化測試。

Scrapy 使用了 Twisted異步網(wǎng)絡(luò)庫來處理網(wǎng)絡(luò)通訊。整體架構(gòu)大致如下

圖片.png

Scrapy主要包括了以下組件:

  • 引擎(Scrapy)
    用來處理整個(gè)系統(tǒng)的數(shù)據(jù)流, 觸發(fā)事務(wù)(框架核心)
  • 調(diào)度器(Scheduler)
    用來接受引擎發(fā)過來的請(qǐng)求, 壓入隊(duì)列中, 并在引擎再次請(qǐng)求的時(shí)候返回. 可以想像成一個(gè)URL(抓取網(wǎng)頁的網(wǎng)址或者說是鏈接)的優(yōu)先隊(duì)列, 由它來決定下一個(gè)要抓取的網(wǎng)址是什么, 同時(shí)去除重復(fù)的網(wǎng)址
  • 下載器(Downloader)
    用于下載網(wǎng)頁內(nèi)容, 并將網(wǎng)頁內(nèi)容返回給蜘蛛(Scrapy下載器是建立在twisted這個(gè)高效的異步模型上的)
  • 爬蟲(Spiders)
    爬蟲是主要干活的, 用于從特定的網(wǎng)頁中提取自己需要的信息, 即所謂的實(shí)體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續(xù)抓取下一個(gè)頁面
  • 項(xiàng)目管道(Pipeline)
    負(fù)責(zé)處理爬蟲從網(wǎng)頁中抽取的實(shí)體,主要的功能是持久化實(shí)體、驗(yàn)證實(shí)體的有效性、清除不需要的信息。當(dāng)頁面被爬蟲解析后,將被發(fā)送到項(xiàng)目管道,并經(jīng)過幾個(gè)特定的次序處理數(shù)據(jù)。
  • 下載器中間件(Downloader Middlewares)
    位于Scrapy引擎和下載器之間的框架,主要是處理Scrapy引擎與下載器之間的請(qǐng)求及響應(yīng)。
  • 爬蟲中間件(Spider Middlewares)
    介于Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應(yīng)輸入和請(qǐng)求輸出。
  • 調(diào)度中間件(Scheduler Middewares)
    介于Scrapy引擎和調(diào)度之間的中間件,從Scrapy引擎發(fā)送到調(diào)度的請(qǐng)求和響應(yīng)。

Scrapy運(yùn)行流程大概如下:

  • 引擎從調(diào)度器中取出一個(gè)鏈接(URL)用于接下來的抓取
  • 引擎把URL封裝成一個(gè)請(qǐng)求(Request)傳給下載器
  • 下載器把資源下載下來,并封裝成應(yīng)答包(Response)
  • 爬蟲解析Response
  • 解析出實(shí)體(Item),則交給實(shí)體管道進(jìn)行進(jìn)一步的處理
  • 解析出的是鏈接(URL),則把URL交給調(diào)度器等待抓取

安裝

pip install scrapy

創(chuàng)建工程

scrapy startproject 工程XXX

使用tree樹形目錄

pip install tree

Linux雜談: 樹形顯示多級(jí)目錄--tree

第一次安裝沒有效果,則更新一下系統(tǒng)即可

查看樹形目錄,N為目錄深度
tree -L N
進(jìn)入剛創(chuàng)建的項(xiàng)目目錄

tree -L 3
微信圖片_20181214040842.png

使用mongodb存儲(chǔ)數(shù)據(jù)

下載安裝包 www.mongodb.org/downloads

微信圖片_20181215132500.png
curl -O http://downloads.mongodb.org/linux/mongodb-linux-x86_64-4.0.4.tgz

2. 解壓tgz包

tar -zxvf mongodb-linux-x86_64-2.6.3.tgz

3. 拷貝解壓出的文件夾到指定目錄

注意權(quán)限,如果提示沒有權(quán)限,請(qǐng)用sudo,或者修改目錄的own。

mkdir -p mongodb cp -R -n mongodb-linux-x86_64-2.6.3/ mongodb

4. 修改/etc/profile(對(duì)所有用戶有效)或者~/.bashrc(對(duì)當(dāng)前用戶有效), 把mongodb/bin加到PATH中。

export MONGODB=/opt/mongodb
export PATH=$MONGODB/bin:$PATH
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容