天天看點

Scrapy基礎學習scrapy總結

scrapy總結

1.scrapy建立

scrapy startproject 名字

2.運作爬蟲檔案

scrapy crawl 名字

setting的設定

ROBOTSTXT_OBEY

robots 協定,也叫機器人協定它用來限定爬蟲程式可以爬取的内容範圍。

在 scrapy 項目的 settings.py 檔案中,預設 ROBOTSTXT_OBEY = True ,即遵守此協定。當爬取内容不符合該協定且仍要爬取時設定 ROBOTSTXT_OBEY = False,不遵守此協定。

一般來說,我們在爬取資訊的時候會将ROBOTSTXT_OBEY改為False。

SPIDER_MIDDLEWARES中間件

一般來說,在設定setting時将裡面的中間件打開,中間件也可以進行更改。詳細資訊請參考官方文檔。

Spider中間件(Middleware)官方文檔

ITEM_PIPELINES,資料庫

連接配接mysql資料庫,在items裡面建立mysql字段,然後再pipelines.py檔案中寫Mysql的邏輯代碼。

Scrapy概述

#Windows平台
    1、pip3 install wheel #安裝後,便支援通過wheel檔案安裝軟體,wheel檔案官網:https://www.lfd.uci.edu/~gohlke/pythonlibs
    3、pip3 install lxml
    4、pip3 install pyopenssl
    5、下載下傳并安裝pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/
    6、下載下傳twisted的wheel檔案:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    7、執行pip3 install 下載下傳目錄\Twisted-17.9.0-cp36-cp36m-win_amd64.whl
    8、pip3 install scrapy
  
#Linux平台
    1、pip3 install scrapy
           

常用指令

#1 檢視幫助
    scrapy -h
    scrapy <command> -h

#2 有兩種指令:其中Project-only必須切到項目檔案夾下才能執行,而Global的指令則不需要
    Global commands:
        startproject #建立項目
            scrapy startproject amazon
        genspider    #建立爬蟲程式  指定名稱 限制爬取的網址
            scrapy genspider amzon www.amzon.cn
        settings     #如果是在項目目錄下,則得到的是該項目的配置
            scrapy settings --get BOT_NAME
        runspider    #運作一個獨立的python檔案,不必建立項目
            scrapy runspider amzon.py
        shell        #scrapy shell url位址  在互動式調試,如選擇器規則正确與否
            scrapy shell www.taobao.com
        fetch        #單純地爬取一個頁面,不打開浏覽器,可以拿到請求頭
            scrapy fetch --nolog http://www.baidu.com 不輸出日志
            scrapy fetch --nolog --header http://www.baidu.com 不輸出日志  隻檢視頭資訊
        view         #下載下傳完畢後直接彈出浏覽器,以此可以分辨出哪些資料是ajax請求
            scrapy view http://www.baidu.com
        version      #scrapy version 檢視scrapy的版本,scrapy version -v檢視scrapy依賴庫的版本
            scrapy version -v


    Project-only commands:
        #必須先切換到對應的目錄才能執行
        crawl        #運作爬蟲,必須建立項目才行,確定配置檔案中ROBOTSTXT_OBEY = False
            scrapy crawl amzon
        check        #檢測項目中有無文法錯誤
            scrapy check
        list         #列出項目中所包含的爬蟲名
            scrapy list
        edit         #編輯器,一般不用
        parse        #scrapy parse url位址 --callback 回調函數  #以此可以驗證我們的回調函數是否正确
        bench        #scrapy bentch壓力測試

#3 官網連結
    https://docs.scrapy.org/en/latest/topics/commands.html
           

目錄結構

project_name/
   scrapy.cfg
   project_name/
       __init__.py
       items.py
       pipelines.py
       settings.py
       spiders/
           __init__.py
           爬蟲1.py
           爬蟲2.py
           爬蟲3.py
檔案說明:
scrapy.cfg  項目的主配置資訊,用來部署scrapy時使用,爬蟲相關的配置資訊在settings.py檔案中。
items.py    設定資料存儲模闆,用于結構化資料,如:Django的Model
pipelines    資料處理行為,如:一般結構化的資料持久化
settings.py 配置檔案,如:遞歸的層數、并發數,延遲下載下傳等。強調:配置檔案的選項必須大寫否則視為無效,正确寫法USER_AGENT='xxxx'
spiders      爬蟲目錄,如:建立檔案,編寫爬蟲規則
注意:一般建立爬蟲檔案時,以網站域名命名

import sys,os
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
           

在pycharm中運作爬蟲程式

在項目目錄下建立:entrypoint.py

from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'amzon'])
           

繼續閱讀