欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-02 22:15:02
...

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