scrapy学习笔记(三)

永远保持一颗求知的心,不要被已知所束缚。

好冷的天,人的惰性又在制约着我。

A任务:爬取http://www.dmoztools.net中关于Chaos的资源数据

访问目的网页:

http://www.dmoztools.net/Science/Math/Chaos_and_Fractals/Chaos/

分析网页元素:

图一 目的网页分析

可以看到我们要爬取的内容在上述div标签中已全部包含,单独爬去上述网页即可。分析要爬取的item元素:


图片二 爬取元素分析

新建工程:

> scrapy startproject dmoztools

> cd dmoztools

创建爬虫:

> scrapy genspider dmoztools_spider dmoztools.net

编辑并保存子文件夹中的items.py:

# -*- coding: utf-8 -*-

import scrapy

class DmoztoolsItem(scrapy.Item):

      title = scrapy.Field()

      link = scrapy.Field()

      path = scrapy.Field()

编辑爬虫主体内容并保存至子文件夹的dmoztools_spider.py:

# -*- coding: utf-8 -*-

import scrapy

from dmoztools.items import DmoztoolsItem


class DmoztoolsSpiderSpider(scrapy.Spider):

      name = 'dmoztools_spider'

      allowed_domains = ['dmoztools.net']

      start_urls = ['http://www.dmoztools.net/Science/Math/Chaos_and_Fractals/Chaos/']


      def parse(self, response):

            lis = response.xpath('//div[contains(@class,"site-item")]/div[3]')


            for li in lis:

                  item = DmoztoolsItem()

                  item['title']=li.xpath('a/div/text()').extract()

                  item['link']=li.xpath('a/@href').extract()

                  item['path']=li.xpath('div/text()').extract()

                  yield item

运行爬虫:

> scrapy crawl dmoztools_spider

就可以在命令行输出中看到爬取内容进行了。

这里重点学习xpath选择器使用规则和items的编写及引入。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。