python web 框架(八) Scrapy

参考:http://www.cnblogs.com/txw1958/archive/2012/07/16/scrapy-tutorial.html

一、简介:

  Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。       Scrapy,吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

  Scrapy,一个为遍历爬行网站、分解获取数据而设计的应用程序框架,它可以应用在广泛领域:数据挖掘、信息处理和或者历史片(历史记录)打包等等                                                       Scrapy,原本是设计用来屏幕抓取(更精确的说,是网络抓取)的目的,但它也可以用来访问API来提取数据,比如Amazon的AWS或者用来当作通常目的应用的网络蜘蛛

二、安装:

  环境:linux、ubuntu                                                                          方法:easy_install scrapy                 

三、入门实例:

  1、创建scrapy project:

mkdir /opt/program/python/myScrapy
cd /opt/program/python/myScrapy
scrapy startproject tutorial

  2、生成的目录结构:

root@jeff:/opt/program/python/myScrapy# tree tutorial/
tutorial/
├── scrapy.cfg#相关配置文件
└── tutorial    #相关代码
    ├── Books
    ├── __init__.py 
    ├── __init__.pyc
    ├── items.py 
    ├── pipelines.py
    ├── Resources
    ├── settings.py
    ├── settings.pyc
    └── spiders#spiders目录
        ├── Books
        ├── dmoz_spider.py
        ├── dmoz_spider.pyc
        ├── __init__.py
        ├── __init__.pyc
        └── Resources

2 directories, 15 files

  3、编辑items.py

  个人理解:类似django框架中的model,用来架构需要处理的数据

from scrapy.item import Item, Field 
class DmozItem(Item):
    title = Field()
    link = Field()
    desc = Field()

  4、创建爬虫

    1)编辑 /opt/program/python/myScrapy/tutorial/tutorial/spiders/my_spider.py

from scrapy.spider import BaseSpider

class DmozSpider(BaseSpider):
    name = "spider_name"
    allowed_domains = ["some.org"]
    start_urls = [
        "http://...",
        "http://...",           
    ]

    def parse(self, response):
        filename = response.url.split("/")[-2]
        open(filename, 'wb').write(response.body)        

  5、使用爬虫:

root@jeff:/opt/program/python/myScrapy/tutorial/tutorial/spiders# scrapy crawl spider_name
原文地址:https://www.cnblogs.com/thinbottle/p/3014061.html