scrapyプロジェクトの作成

4047 ワード

scrapyプロジェクトの作成
分散型実戦(乾物)Spring cloud実戦(乾物)mybatis実戦(乾物)Spring boot実戦(乾物)React入門実戦(乾物)中小規模インターネット企業アーキテクチャ(乾物)の構築
python学習継続更新ElasticSearchノート概要
一、仮想環境の作成
  • 仮想環境はpython 3
  • です.
    mkvirtualenv article_spider
    

    二、scrapyのインストール
    (article_spider) C:\Users\Administrator>pip intsall -i https://pypi.douban.com/simple/ scrapy
    

    インストールプロセスエラー
        running build_ext
        building 'twisted.test.raiser' extension
        error: Microsoft Visual C++ 14.0 is required. Get it with
    

    解決する
  • https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted twisted対応バージョンのwhlファイル
  • をダウンロード
    (私のTwisted-17.9.0-cp 35-cp 35 m-win 32.whlのように)、cpの後ろにpythonバージョンがあり、amd 64は64ビットを表しています.
    (article_spider) C:\Users\Administrator>pip install G:\tools\pythontool\Twisted-17.9.0-cp35-cp35m-win32.whl
    

    三、scrapyプロジェクトの作成
    仮想環境への移行
    workon article_spider
    G:\pythonWorkspace>workon article_spider
    (article_spider) G:\pythonWorkspace>
    

    プロジェクトの作成
    scrapy startproject ArticleSpider
  • は、テンプレート
  • をカスタマイズすることもできる.
    (article_spider) G:\pythonWorkspace>scrapy startproject ArticleSpider
    
    New Scrapy project 'ArticleSpider', using template directory 'e:\\python\\envs\\article_spider\\lib\\site-packages\\scrapy\\templates\\project', created in:
        G:\pythonWorkspace\ArticleSpider
    
    You can start your first spider with:
        cd ArticleSpider
        scrapy genspider example example.com
    

    テンプレートの作成
    プロジェクトの実行に入る:
    scrapy genspider jobbole blog.jobbole.com
    (article_spider) G:\pythonWorkspace\ArticleSpider>scrapy genspider jobbole blog.
    jobbole.com
    Created spider 'jobbole' using template 'basic' in module:
      ArticleSpider.spiders.jobbole
    

    四、pychartインポートプロジェクト
  • インポート後pycharmを設定する仮想環境
  • インストール
    pypiwin32
    (article_spider) C:\Users\Administrator>pip install pypiwin32
    ```
    
    settings.py    :
    
    ```
    ROBOTSTXT_OBEY = False
    ```
    
               scrapy shell     
     
     ```
     (article_spider) C:\Users\Administrator>scrapy shell https://blog.csdn.net/qq_27384769/article/details/79439922
     ```
     
        
     
     ```
     >>> title = response.xpath("//*[@id='article_content']/div/ul/li[2]/p/a")
    >>> title
    []
    
    
    >>> title.extract()[0]
    '  git  コマンドまとめ'
    
    
     ```
     
       xpath       
     
    ```
        def parse(self, response):
                     
            title = response.xpath('//div[@class="entry-header"]/h1/text()').extract_first("")
            create_date = response.xpath("//p[@class='entry-meta-hide-on-mobile']/text()").extract()[0].strip().replace("·","").strip()
            praise_nums = response.xpath("//span[contains(@class, 'vote-post-up')]/h10/text()").extract()[0]
            fav_nums = response.xpath("//span[contains(@class, 'bookmark-btn')]/text()").extract()[0]
            match_re = re.match(".*?(\d+).*", fav_nums)
            if match_re:
                fav_nums = match_re.group(1)
    
            comment_nums = response.xpath("//a[@href='#article-comment']/span/text()").extract()[0]
            match_re = re.match(".*?(\d+).*", comment_nums)
            if match_re:
                comment_nums = match_re.group(1)
    
            content = response.xpath("//div[@class='entry']").extract()[0]
    
            tag_list = response.xpath("//p[@class='entry-meta-hide-on-mobile']/a/text()").extract()
            tag_list = [element for element in tag_list if not element.strip().endswith("  ")]
            tags = ",".join(tag_list)
            pass
    ```