scrapy爬虫学习笔记

scrapy学习笔记(三)

2017-12-21  本文已影响0人  ATangYaaaa

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

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

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的编写及引入。

上一篇 下一篇

猜你喜欢

热点阅读