程序员Pythoner集中营Python精选

一步一步学Scrapy:step 1

2016-07-31  本文已影响205人  迷途老鹰

Ubuntu下安装Scrapy

1、首先需要安装如下软件
Python 2.7
lxml
OpenSSL
pip or easy_install

2、安装必备软件
sudo apt-get install libevent-dev
sudo apt-get install python-dev
sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
sudo apt-get install python-setuptools

3、安装Scrapy
sudo apt-get install Scrapy

创建项目

以爬取mininova中的EBOOK种子链接、名称、大小为例
1、进入存储代码的目录中,运行下列命令
scrapy startproject mininova
该命令将会创建包含下列内容的mininova目录

mininova/
    scrapy.cfg
    mininova/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
            ...

这些文件分别是:

2、定义Item
编辑mininova目录中的items.py文件:

import scrapy

class MininovaItem(scrapy.Item):
    title = scrapy.Field()
    link = scrapy.Field()
    size = scrapy.Field()

3、编写第一个爬虫(Spider)
为了创建一个Spider,必须继承scrapy.Spider类,且定义一下三个属性:

以下为我们的第一个Spider代码,保存在mininova/spiders目录下的mininova_spider.py文件中:

import scrapy
from mininova.items import MininovaItem

class MininovaSpider(scrapy.Spider):
    name = 'mininova'
    allowed_domains = ['mininova.org'] 
    start_urls = ['http://www.mininova.org/sub/50/name/1']

    def parse(self,response):
        sites = response.xpath('//table[@class="maintable"]//tr')
        for site in sites:
            item = MininovaItem()
            item['title'] = site.xpath('td/a[not(@class="ti com")]/text()').extract()
            for url in site.xpath('td/a[@class="dl"]/@href').extract():
                item['link'] = 'http://www.mininova.org' + url
            for size in site.xpath('td[3]/text()').extract():
                size = size.encode('utf-8')
                item['size'] = size.replace('\xc2\xa0','')
            yield item

4、爬取
进入项目的根目录,执行下列命令启动spider:
scrapy crawl mininova
5、保存爬取到的数据
scrapy crawl mininova -o items.json

下一步

下一篇将介绍分页爬取、存入数据库及一些设置。

上一篇下一篇

猜你喜欢

热点阅读