scrapy框架学习-实现一个简单的爬虫程序

来源:互联网 发布:ubuntu skype安装包 编辑:程序博客网 时间:2024/05/18 02:42

1、scrapy简介:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。
2、建立scrapy项目的流程:
1、 创建项目
在开始爬取之前,首先要创建一个新的Scrapy项目。这里以爬取我的博客为例,进入你打算存储代码的目录中,运行下列命令:
scrapy startproject scrapyspider

该命令将会创建包含下列内容的scrapyspider目录:
scrapyspider/
scrapy.cfg
scrapyspider/
init.py
items.py
pipelines.py
settings.py
spiders/
init.py

这些文件分别是:
● scrapy.cfg: 项目的配置文件。
● scrapyspider/: 该项目的python模块。之后您将在此加入代码。
● scrapyspider/items.py: 项目中的item文件。
● scrapyspider/pipelines.py: 项目中的pipelines文件。
● scrapyspider/settings.py: 项目的设置文件。
● scrapyspider/spiders/: 放置spider代码的目录。
2、编写第一个爬虫(Spider)
Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。
其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。
为了创建一个Spider,您必须继承 scrapy.Spider 类, 且定义以下三个属性:
● name: 用于区别Spider。 该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。
● start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。 后续的URL则从初始的URL获取到的数据中提取。
● parse() 是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。
使用命令 scrapy genspider blogList(爬虫名) 创建
以下为我们的第一个Spider代码,保存在scrapyspider/spiders目录下的blog_spider.py文件中:
#*_coding:utf-8_*
from scrapy.spiders import Spider

class BlogSpider(Spider):
name=’blogList’ #爬虫名字
start_urls=[‘http://blog.csdn.net/baimafujinji‘] #爬取的网站域名

#解析response数据def parse(self,response):    titles=response.xpath('//*[@id="article_list"]/div[*]/div[1]/h1/span/a/text()').extract()    for title in titles:        print title.strip()

3、启动爬虫
在项目文件夹内打开cmd运行下列命令:
scrapy crawl blogList