Python爬蟲學習筆記(實例:scrapy框架基礎)

scrapy爬蟲框架

命令行格式:scrapy<command>[option][args]

常用命令:

全局命令

startproject

語法: scrapy startproject <project_name>[dir]

這個命令是 scrapy最爲常用的命令之一,它將會在當前目錄下創建一個名爲 <project_name>的項目。

settings

語法: scrapy settings [options]

該命令將會輸出Scrapy默認設定,當然如果你在項目中運行這個命令將會輸出項目的設定值。

runspider

語法: scrapy runspider <spider_file.py>

在未創建項目的情況下,運行一個編寫在Python文件中的spider。

shell

語法: scrapy shell [url]

以給定的URL(如果給出)或者空(沒有給出URL)啓動Scrapy shell。

例如,scrapy shell http://www.baidu.com將會打開百度URL,

並且啓動交互式命令行,可以用來做一些測試。

fetch

語法: scrapy fetch <url>

使用Scrapy下載器(downloader)下載給定的URL,並將獲取到的內容送到標準輸出。簡單的來說,就是打印url的html代碼。

view

語法: scrapy view <url>

在你的默認瀏覽器中打開給定的URL,並以Scrapy spider獲取到的形式展現。 有些時候spider獲取到的頁面和普通用戶看到的並不相同,一些動態加載的內容是看不到的, 因此該命令可以用來檢查spider所獲取到的頁面。

version

語法: scrapy version [-v]

輸出Scrapy版本。配合 -v 運行時,該命令同時輸出Python, Twisted以及平臺的信息。項目命令

crawl

語法: scrapy crawl <spider_name>

使用你項目中的spider進行爬取,即啓動你的項目。這個命令將會經常用到,我們會在後面的內容中經常使用。

check

語法: crapy check [-l] <spider>

運行contract檢查,檢查你項目中的錯誤之處。

list

語法: scrapy list

列出當前項目中所有可用的spider。每行輸出一個spider。

genspider

語法: scrapy genspider [-t template] <name> <domain>

在當前項目中創建spider。該方法可以使用提前定義好的模板來生成spider。您也可以自己創建spider的源碼文件。

 

以爬取http://python123.io/ws/demo.html即http://python123.io的子頁面爲例

  1. 創建一個爬蟲的工程:Cmd->scrapy startproject python123demo
  2. 在工程中產生一個scrapy爬蟲:cd python123demo->scrapy genspider demo python123.io
  3. 配置產生的spider爬蟲:修改start_urls中的鏈接爲 http://python123.io/ws/demo.html ->更改爬取方法(demo.py文件)的具體功能

# -*- coding: utf-8 -*-
import scrapy


class DemoSpider(scrapy.Spider): #繼承類
    name = 'demo'
   # allowed_domains = ['python123.io'] #提交給命令行的主域名,不需要
    start_urls = ['http://python123.io/ws/demo.html'] #scapy框架要爬取的初始頁面

    def parse(self, response): #解析頁面的空方法,parse()用於處理相應,解析內容形成字典,發現新的URL爬取請求
        fname = response.url.split('/')[-1]
        with open(fname,'wb') as f: #爬取網頁並將其保存爲一個名爲fname的HTML文件
            f.write(response.body)
        self.log('saved file %s.'% name)
        pass

 

  1. 運行爬蟲:scrapy  crawl demo
  2. yield生成器:不斷產生值的函數,每次產生一個值,函數被凍結,被喚醒後再產生一次
  3. scrapy爬蟲的使用步驟:

A.創建一個工程和spider模板 B.編寫spider  C.編寫ItemPipeline  D.配置優化策略

2.1爬蟲三個數據類型:

Request類:

Reaponse類:

Item類:

3.CSS selector的基本使用:<HTML>.css(‘a::attr(href)’).extract()

發佈了51 篇原創文章 · 獲贊 19 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章