scrapy研究探索(二)——爬w3school.com.cn

本文详细介绍了使用Scrapy爬取w3school.com.cn上的XML基础教程,包括项目创建、items定义、pipelines处理、爬虫编写及数据提取。通过Firefox插件辅助定位XPath,解析网页数据并保存到JSON文件。此外,还讲解了如何利用log功能记录信息。
摘要由CSDN通过智能技术生成

下午被一个问题困扰了好一阵,最终使用另一种方式解决。

开始教程二,关于Scrapy安装、介绍等请移步至教程(一)(http://blog.csdn.net/u012150179/article/details/32343635)。

在开始之前假设你已经成功安装一切所需,整怀着一腔热血想要抓取某网站。一起来have a try。


1. 前期基础准备。

Oh,不能在准备了,直接来。

(1) 创建项目。

输入:

scapy startproject w3school

以上创建项目w3school。这时会产生w3school文件夹,文件夹下文件如下: 

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

其中scrapy.cfg目的配置文件。主要改写的是w3school中的三个文件以及其中spiders中需要编写的爬虫。

一个一个来。

(2) 在items.py中定义Item容器。也就是编写items.py内容。

所谓Item容器就是将在网页中获取的数据结构化保存的数据结构,类似于python中字典。下面为items.py中代码。

#project: w3school
#file   : items.py
#author : younghz
#brief  : define W3schoolItem.

from scrapy.item import Item,Field

class W3schoolItem(Item):
    title = Field()
    link = Field()
    desc = Field()


上面定义了自己的W3schoolItem类,它继承自scrapy的Item(这里没有显示定义W3schoolItem的__init__()方法,也正因为如此,python也会为你自动调用基类的__init__(),否则必须显式在子类的__init__()中调用基类__init__())。

之后声明W3schoolItem中元素并使用Field定义。到此items.py就OK了。


(3) 在pipelines.py中编写W3schoolPipeline实现对item的处理

在其中主要完成数据的查重、丢弃,验证item中数据,将得到的item

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值