2

最近开始学习爬虫,接触到了scrapy这个框架,简直神器,也不用自己设置多进程啥的了,好用的飞起
看了挺多博客的介绍,感觉崔庆才的文章写得很清晰,特别是scrapy的原理,通俗易懂,想看的可以移步到此处 ->

>> 崔庆才的博客 <<

>> 官方文档在这里 <<

对着官方的教程文档,做一点自己的解析。官方文档使用的是一个名人名言的网站,很适合练手。
废话少说,开整

  1. 建立项目

    D:\netspider>scrapy startproject getquotes
    

    项目建立好了之后,目录如图所示

图片描述

其他的文件先不用管,在spider这个文件夹中,建立爬虫文件,myspider.py,包含代码如下

import scrapy

class myspider(scrapy.Spider):

# 设置爬虫名称
name = "get_quotes"

# 设置起始网址
start_urls = ['http://quotes.toscrape.com']

def parse(self, response):

    #使用 css 选择要素进行抓取,如果喜欢用BeautifulSoup之类的也可以
    #先定位一整块的quote,在这个网页块下进行作者、名言,标签的抓取
    for quote in response.css('.quote'):
        yield {
            'author' : quote.css('small.author::text').extract_first(),
            'tags' : quote.css('div.tags a.tag::text').extract(),
            'content' : quote.css('span.text::text').extract_first()
        }  

scrapy会默认先调用parse()函数进行url的request处理,因为parse()是scrapy的默认回调函数,需要覆写它来进行适配我们的抓取任务。

该网站的元素定位还是很清晰的:
图片描述

运行结果如下:
图片描述

成功将作者,名言内容,标签获取到。

个人比较喜欢使用xpath进行定位,两种方法都可以,有时候还需要结合使用。scrapy的基本使用方法就是这样,下一篇写一下循环获取与数据保存。


阿呆吼
257 声望10 粉丝

引用和评论

0 条评论