欢迎加入QQ讨论群258996829
麦子学院 头像
苹果6袋
6
麦子学院

Scrapy安装及创建项目

发布时间:2016-08-10 18:35  回复:1  查看:3754   最后回复:2016-08-12 23:57  

今天给大家写了一个Scrapy入门教程,帮助大家安装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
<!-- more -->


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

            ...

这些文件分别是:

scrapy.cfg:项目的配置文件

mininova/:该项目的python模块。

mininova/items.py:项目中的item文件

mininova/pipelines.py:项目中pipelines文件

mininova/settings.py:项目的设置文件

mininova/spiders/:放置spider代码的目录

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类,且定义一下三个属性:

name:用于区别Spider。该名字必须是唯一的,不可以为不同的Spider设定相同的名字。

start_urls:包含了Spider在启动时进行爬取的url列表。因此,第一个被获取到的页面将是其中之一。后续的URL则从初始的URL获取到的数据中提取。

parse():spider的一个方法。被调用时,每个初始URL完成下载后生成的Response对象将会作为唯一的参数传递给该函数。该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URLRequest对象。

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

import scrapyfrom 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

 


原文来自:简书/迷途老鹰

 

 

 

 

 

 

杨洋 头像
苹果0袋
0
杨洋   2016-08-12 23:57
20       14            9       14        6
17         11           8         3       22 
0          4           13        20      16
11         14        8           5          0
18         21         0        10         2 
0           16         15       21        9
23          22        3         0        17 
8          24         14       24       10
19         22         0        4         16
0            3          20     5           2
20       14            9       14        6
17         11           8         3       22 
0          4           13        20      16
11         14        8           5          0
18         21         0        10         2 
0           16         15       21        9
23          22        3         0        17 
8          24         14       24       10
19         22         0        4         16
0            3          20     5           2

您还未登录,请先登录

热门帖子

最新帖子