如何自己搭建Scrapy爬虫框架

33 篇文章 7 订阅
4 篇文章 1 订阅

前言
当你学了一段时间爬虫后,就会知道各种功能太多而且麻烦。还不如自己整理个框架方便的多。因此,从开始写爬虫程序开始,就会慢慢的接触到一些有关爬虫的框架、效率提升而且扩展也很方便。接下来我将会以Scrapy爬虫框架将我的学习过程记录下供大家参考指正。

一、安装

$ pip install scrapy

二、创建爬虫工程

$ scrapy startproject wikiSpider

三、爬虫工程目录结构

wikiSpider项目文件夹的目录结构如下所示:

scrapy.cfg
- wikiSpider
    - __init__.py
  - items.py  
  - pipelines.py
  - settings.py
  - spiders
       - __init__.py

四、定义需要爬取数据字段

我们准备爬取页面的标题在items.py文件中,定义一个Article类,然后编写如下代码:

from scrapy import Item,Field
class Article(Item):
    title = Field()

五、创建一个爬虫文件

为了创建一个爬虫,我们需要在wikiSpider/wikiSpider/spiders/文件夹里增加一个 articleSpider.py文件。

在新建的articleSpider.py文件里面,写如下代码:

from scrapy.selector import Selector
from scrapy import Spider
from wikiSpider.items import Article

class ArticleSpider(Spider):
    name = 'article'
    allowd_domains = ["en.wikipedia.org"]
    start_urls = ['http://en.wikipedia.org/wiki/Main_Page','http://en.wikipedia.org/wiki/Python_%28programming_language%29']

    def parse(self,response):
        item = Article()
        title = response.xpath('//h1/text()')[0].extract()
        print("Title is : "+title)
        item['title'] = title
        return item

这个类的名称(ArticleSpider )与爬虫文件的名称(wikiSpider)是不同的, 这个类只是 在 wikiSpider 目录里的一员,仅仅用于维基词条页面的采集。

运行爬虫

你可以在wikiSpider主目录中用如下命令运行 ArticleSpider :

$ scrapy crawl article

这行命令会用ArticleSpider类中的定义的name调用爬虫。这个爬虫先进入start_urls里面的两个页面,收集信息,然后停止。

Scrapy支持用不同的输出格 式来保存这些信息,比如CSV、JSON 或XML文件格式,对应命令如下所示:

$ scrapy crawl article -o articles.csv -t csv 
$ scrapy crawl article -o articles.json -t json 
$ scrapy crawl article -o articles.xml -t xml

当然,你也可以自定义 Item 对象,把结果写入你需要的一个文件或数据库中,只要在爬虫的parse部分增加相应的代码即可。如果觉得内容还不错,分享给更多朋友,一起提升编程技能。

请添加图片描述

↓ ↓ ↓ 加下方名片找我,直接拿源码还有案例 ↓ ↓ ↓
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值