永远保持一颗求知的心,不要被已知所束缚。
好冷的天,人的惰性又在制约着我。
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的编写及引入。