爬取干货集中营数据(1)

爬取干货集中营数据(1)

http://gank.io/

得到妹纸图 ಠ౪ಠ

  1. 新建Scrapy项目:

    • 在你的scrapy爬虫ENV中执行命令: $> scrapy startproject gank 你将看到在当前目录下生成了一个如下结构的目录:
      爬取干货集中营数据(1)_第1张图片
      gank项目目录结构
    • 进入gank项目,在 gank/spiders 目录下新建文件 gank_meizi.py
  2. 代码来了

    在gankMeiZi.py中优雅的敲入如下代码:
    # -- coding: utf-8 --
    author = 'dongsj'

     import scrapy
    
     from scrapy.spider import Spider
     from  scrapy.selector import Selector
    
     class GankMeiZiSpider(scrapy.Spider):
         name = 'gankMeiZi'
         allowed_domains = ["gank.io"]
         start_urls = [
             "http://gank.io/"
         ]
    
         def parse(self, response):
             """
                 用来爬取http://gank.io 妹子图片
             """
             sel = Selector(response)
             meiziImg = sel.xpath("//div[@class='outlink']/h1/img/@src").extract()
    
             yield {
                 "images": meiziImg
             }
    
  3. 爬一张妹子图来玩(这里只能简单的爬取一张妹子图哦~):

    • 运行项目的方式
      • 进入项目的顶层目录
      • $> scrapy crawl gankMeiZi
    • 直接运行py文件的方式
      • 进入 gank_meizi.py 所在目录
      • $> scrapy runspider gank_meizi.py 或者 $> scrapy runspider gank_meizi.py -o result.json 前者结果输出在控制台,后者结果会被重定向到result.json文件中

运行结果如下图:
爬取干货集中营数据(1)_第2张图片
运行结果

抓住妹子一只在这里:
爬取干货集中营数据(1)_第3张图片
2015/12/29的妹纸

知识点

上面的代码中用到了:

  • Spider
  • Selector

我们创建的GankMeiZiSpider继承自 scrapy.Spider, 它具备几个属性:

  • name: 作为你的Spider的唯一标识,不同的Spider必须保持 name 唯一 (爬妹子的是爬妹子的,爬汉子的是爬汉子的,一定要区分开).
  • start_urls: 这个URL列表,表示爬虫开始爬取的开始URL.第一页的URL一般配置在该列表中,更深的URL会根据返回的response解析获得.
  • parse(): 该方法负责解析 start_urls 返回的response,提取其中你感兴趣的数据.它接收唯一参数 Response( start_urls 对应的Response)

页面元素提取器 Selector : (后续介绍)

  • XPaht 表达式
  • CSS

你可能感兴趣的:(爬取干货集中营数据(1))