基于Python的开源爬虫软件Scrapy快速入门

本文介绍如何安装Scrapy并快速搭建一个简单的爬虫项目。通过创建项目、定义数据结构及编写爬虫逻辑,成功抓取指定网页内容。解决过程中遇到的问题,如Spider类路径错误等。

一、安装Scrapy

#导入GPG密钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 627220E7

#添加软件源
echo 'deb http://archive.scrapy.org/ubuntu scrapy main' | sudo tee /etc/apt/sources.list.d/scrapy.list

#更新包列表并安装scrapy
sudo apt-get update && sudo apt-get install scrapy-0.22

二、Scrapy的组成


三、快速开始Scrapy

运行Scrapy后,只需要重写一个download就可以了。

这里是别人的一个抓取招聘网站信息的例子,基本结构可以参考。但我运行时,出现很多错误,缺少misc目录,而且piplines的配置没有写出来。

诸君稍候,等我试一下,全部分享给大家。

根据官方的入门例程,快速开始:

首先,根据模版创建一个工程。

scrapy startproject tutorial

里面的目录和文件看起来是这样的:

tutorial/
    scrapy.cfg            # deploy configuration file
    tutorial/             # project's Python module, you'll import your code from here
        __init__.py
        items.py          # project items file
        pipelines.py      # project pipelines file
        settings.py       # project settings file
        spiders/          # a directory where you'll later put your spiders
            __init__.py
            ...

进items.py,改成这样:

import scrapy

class DmozItem(scrapy.Item):
    title = scrapy.Field()
    link = scrapy.Field()
    desc = scrapy.Field()

再进dmoz_spider.py,改成这样:

import scrapy

class DmozSpider(scrapy.Spider):
    name = "dmoz"
    allowed_domains = ["dmoz.org"]
    start_urls = [
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
        "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
    ]

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

再运行这个:

scrapy crawl dmoz

但是,出错了哇!

找了个别的例子参考了下,把里面的scrapy.Spider改为scrapy.spider.Spider,如下:

class DmozSpider(scrapy.spider.Spider):

基本上就可以Run起来了。

可能是版本修改了,把Spider这个类放到了spider命名空间下了,可是例子没有改,有点坑人咧!

完整的教程在这里:http://scrapy-chs.readthedocs.org/zh_CN/latest/intro/tutorial.html



转载于:https://my.oschina.net/u/2306127/blog/485455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值