scrapy 的一個例子

 一、目標:python

  scrapy 是一個爬蟲構架,現用一個簡單的例子來說解,scrapy 的使用步驟dom

 

二、建立一個scrapy的項目:scrapy

  建立一個叫firstSpider的項目,命令以下:ide

scrapy startproject firstSpider 
[jianglexing@cstudio ~]$ scrapy startproject firstSpider 
New Scrapy project 'firstSpider', using template directory '/usr/local/python-3.6.2/lib/python3.6/site-packages/scrapy/templates/project', created in:
    /home/jianglexing/firstSpider

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

  

三、建立一個項目時scrapy 命令幹了一些什麼:網站

  建立一個項目時scrapy 會建立一個目錄,並向目錄中增長若干文件url

[jianglexing@cstudio ~]$ tree firstSpider/
firstSpider/
├── firstSpider
│   ├── __init__.py
│   ├── items.py
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── __pycache__
│   ├── settings.py
│   └── spiders
│       ├── __init__.py
│       └── __pycache__
└── scrapy.cfg

4 directories, 7 files

 

四、進入項目所在的目錄並建立爬蟲:spa

[jianglexing@cstudio ~]$ cd firstSpider/
[jianglexing@cstudio firstSpider]$ scrapy genspider financeSpider www.financedatas.com
Created spider 'financeSpider' using template 'basic' in module:
  firstSpider.spiders.financeSpider

 

五、一隻爬蟲在scrapy 項目中對應一個文件:code

[jianglexing@cstudio firstSpider]$ tree ./
./
├── firstSpider
│   ├── __init__.py
│   ├── items.py
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   └── settings.cpython-36.pyc
│   ├── settings.py
│   └── spiders
│       ├── financeSpider.py    # 這個就是剛纔建立的爬蟲文件
│       ├── __init__.py
│       └── __pycache__
│           └── __init__.cpython-36.pyc
└── scrapy.cfg

 

六、編寫爬蟲的處理邏輯:blog

  以爬取 http://www.financedatas.com 網站首頁的title爲例ip

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


class FinancespiderSpider(scrapy.Spider):
    name = 'financeSpider'
    allowed_domains = ['www.financedatas.com']
    start_urls = ['http://www.financedatas.com/']

    def parse(self, response):
        """在parse方法中編寫處理邏輯"""
        print('*'*64)
        title=response.xpath('//title/text()').extract() #xpath 語法抽取數據
        print(title)
        print('*'*64)

 

七、運行爬蟲,查看效果:

[jianglexing@cstudio spiders]$ scrapy crawl financeSpider
2017-08-10 16:11:38 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: firstSpider)
2017-08-10 16:11:38 [scrapy.utils.log] INFO: Overridden settings: {'BOT_NAME': 'firstSpider', 'NEWSPIDER_MODULE': 'firstSpider.spiders', 'ROBOTSTXT_OBEY': True, 'SPIDER_MODULES': ['firstSpider.spiders']}
.... ....
2017-08-10 16:11:39 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://www.financedatas.com/robots.txt> (referer: None)
2017-08-10 16:11:39 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.financedatas.com/> (referer: None)
**************************************************************** ['歡迎來到 www.financedatas.com']   # 這裏就抽取到的數據
****************************************************************2017-08-10 16:11:39 [scrapy.core.engine] INFO: Spider closed (finished)

 

 

 

----

相關文章
相關標籤/搜索