scrapyフレームワークの概要と基礎応用


目次
  • scrapyフレームワークの概要と基礎応用
  • 取付
  • 基本用法
  • 1.プロジェクトの作成:scrapy startprojectプロジェクト名
  • 2.爬虫類アプリケーションの作成:
  • 3.爬虫類ファイルの作成:
  • 4.設定変更settings.pyプロファイル関連構成:
  • 5.爬虫類プログラムの実行:scrapy crawlアプリケーション名
  • 小試牛刀:恥ずかしい百トップページの中のネタの内容とタイトルを
  • に登る

    scrapyフレームワークの概要と基礎応用
    Scrapyとは?
  • Scrapyは、Webサイトのデータを取得し、構造的なデータを抽出するために作成されたアプリケーションフレームワークであり、非常に有名で、非常に強い.フレームワークとは,様々な機能(高性能非同期ダウンロード,キュー,分散,解析,持続化など)が統合された汎用性の高いプロジェクトテンプレートである.フレームワークの学習には,そのフレームワークの特性,各機能の使い方を学習することに重点を置く.

  • インストール
    Linux:
      pip3 install scrapy

    Windows:
      :          
    
      a. pip3 install wheel
    
      b.   twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    
      c.       ,   pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl
    
      d. pip3 install pywin32
    
      e. pip3 install scrapy

    基本的な使い方
    1.プロジェクトの作成:scrapy startprojectプロジェクト名
    プロジェクト構造:
    project_name/
       scrapy.cfg:
       project_name/
           __init__.py
           items.py
           pipelines.py
           settings.py
           spiders/
               __init__.py
    
    scrapy.cfg           。(            settings.py   )
    items.py             ,       , :Django Model
    pipelines           
    settings.py      , :     、   ,     
    spiders          , :    ,        

    2.爬虫類アプリケーションの作成:
    cd project_name(プロジェクトディレクトリに入る)
    scrapy genspiderアプリケーション名Webページの開始url(例:scrapy genspider qiubai www.qiushibaike.com)
    3.爬虫類ファイルの作成:
    ステップ2の実行が完了すると、プロジェクトのspidersにアプリケーション名のpy爬虫類ファイルが生成され、ファイルソースは次のようになります.
    # -*- coding: utf-8 -*-
    import scrapy
    
    class QiubaiSpider(scrapy.Spider):
        name = 'qiubai' #    
        #       (         url       )
        allowed_domains = ['https://www.qiushibaike.com/']
        #     url
        start_urls = ['https://www.qiushibaike.com/']
    
         #    URL           ,    response        url     ,       .                NUll 
         def parse(self, response):
            print(response.text) #            
            print(response.body)#           

    4.設定変更settings.pyプロファイル関連構成:
              :
    19 :USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' #        
    
    22 :ROBOTSTXT_OBEY = False  #         robots  

    5.爬虫類プログラムの実行:scrapy crawlアプリケーション名
    小试牛刀:耻ずかしい百トップページの中のネタの内容とタイトルを爬取する
    # -*- coding: utf-8 -*-
    import scrapy
    
    class QiubaiSpider(scrapy.Spider):
        name = 'qiubai'
        allowed_domains = ['https://www.qiushibaike.com/']
        start_urls = ['https://www.qiushibaike.com/']
    
        def parse(self, response):
            #xpath response    ,   xpath            
            odiv = response.xpath('//div[@id="content-left"]/div')
            content_list = [] #          
            for div in odiv:
                #xpath        ,         Selector     。             Selector   ,    extract()         Selecor   。
                author = div.xpath('.//div[@class="author clearfix"]/a/h2/text()')[0].extract()
                content=div.xpath('.//div[@class="content"]/span/text()')[0].extract()
    
                #             
                dic={
                    '  ':author,
                    '  ':content
                }
                #      content_list     
                content_list.append(dic)
    
            return content_list

    爬虫類プログラムの実行:
    scrapy crawl      :                
    
    scrapy crawl      --nolog:                 

    転載先:https://www.cnblogs.com/konghui/p/10809256.html