1. 程式人生 > 其它 >python爬蟲-初識scrapy框架

python爬蟲-初識scrapy框架

什麼是scrapy框架

介紹

Scrapy是適用於Python的一個快速、高層次的螢幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的資料。
Scrapy用途廣泛,可以用於資料探勘、監測和自動化測試。
Scrapy吸引人的地方在於它是一個框架,任何人都可以根據需求方便的修改。
它也提供了多種型別爬蟲的基類,如BaseSpider、sitemap爬蟲等,最新版本又提供了web2.0爬蟲的支援。

基本功能

Scrapy是一個適用爬取網站資料、提取結構性資料的應用程式框架,它可以應用在廣泛領域:Scrapy 常應用在包括資料探勘,資訊處理或儲存歷史資料等一系列的程式中。
通常我們可以很簡單的通過 Scrapy 框架實現一個爬蟲,抓取指定網站的內容或圖片。
儘管Scrapy原本是設計用來螢幕抓取(更精確的說,是網路抓取),但它也可以用來訪問API來提取資料。

scrapy環境安裝

這裡建議使用conda建立獨立的環境或者是在pycharm中來安裝scrapy

pip install scrapy

scrapy基本使用

1. 建立工程

cd xxx  # 進入到專案指定目錄

scrapy startproject study_scrapy01  # 建立一個名為study_scrapy01的工程

顯示建立成功

New Scrapy project 'study_scrapy01', using template directory '/Users/soutsukyou/opt/anaconda3/lib/python3.8/site-packages/scrapy/templates/project', created in:
    /Users/soutsukyou/PyCharm_Workspace/網路爬蟲/study_scrapy/study_scrapy01

You can start your first spider with:
    cd study_scrapy01
    scrapy genspider example example.com

專案結構


2. 在spiders子目錄下建立一個爬蟲檔案

cd study_scrapy01  # 進入你建立的專案
scrapy genspider spider_01 www.baidu.com  # 生成一個爬蟲檔案 名為:spider_01 網址為:www.baidu.com

返回結果,這是你會發現你的spiders目錄下多了一個 spide_01.py 的檔案

Created spider 'spider_01' using template 'basic' in module:
  study_scrapy01.spiders.spider_01

3. 編寫爬蟲檔案

新建立的spide_01.py檔案還沒有任何爬取方法,我們需要詳細它。

import scrapy


class Spider01Spider(scrapy.Spider):
    # 爬蟲檔案的名稱
    name = 'spider_01'
    # 允許的域名,該列表用來限定start_urls列表中的url那些可以請求傳送
    # 一般不會讓這個裡面有值,或者不使用它
    # 假如要爬取一個網站中圖片,那麼這個網站的圖片不一定是在這個網站的域名之下
    allowed_domains = ['www.baidu.com']
    # 起始的url列表,該列表中的url會被scrapy自動的進行請求傳送
    start_urls = ['http://www.baidu.com/']

    # 用於資料解析,response就是請求成功後的響應物件
    def parse(self, response):
        print(response)

4. 修改settings.py配置檔案

君子協議,這個君子不當也罷(歪嘴)

# Obey robots.txt rules
ROBOTSTXT_OBEY = False

# 僅輸出錯誤日誌
LOG_LEVEL = 'ERROR'

5. 執行工程檔案

scrapy crawl spider_01