您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页爬取干货集中营数据(2)

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

来源:二三娱乐

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

得到更多妹纸图 ಠ౪ಠ

  1. 定义Item(ganl/items.py):

     class GankMeizi(scrapy.Item):
         title = scrapy.Field()
         image = scrapy.Field()
         refs = scrapy.Field()
    
    • title : 每页标题
    • image : 每页妹子
    • refs : 每页中的超链接,链向下一篇 或者 上一篇
  2. 继续修改gankMeiZi.py

    # -*- coding: utf-8 -*-
    __author__ = 'dongsj'

    import scrapy

    from scrapy.spider import Spider
    from scrapy.selector import Selector

    from gank.items import GankMeizi

    class GankMeiZiSpider(Spider):
        name = 'gankMeiZi'
        allowed_domains = ["gank.io"]
        start_urls = [
            "http://gank.io"
        ]

        def parse(self, response):
            """
                用来爬取http://gank.io 妹子图片
            """
            base_url = 'http://gank.io'
            sel = Selector(response)
            # 页面标题
            title = sel.xpath("//div[@class='typo']/div/h1/text()").extract()
            # 图片
            image = sel.xpath("//div[@class='outlink']/h1/img/@src").extract()
            # 前一页面地址
            refs = sel.xpath("//div[@class='typo']/div[@class='container content']/div[@class='row'][1]/div[@class='six columns']/p/a/@href").extract()

            # Item 对象
            meizi = GankMeizi()
            meizi['title'] = title[0]
            meizi['image'] = image[0]
            meizi['refs'] = refs

            yield meizi

            if 0 < len(refs):
                url = base_url + refs[0]
                yield scrapy.Request(url, callback=self.parse)
  • 这里还是使用 xpath 解析了页面上的超链接(指向上一篇 或者 下一篇文章)
  • 得到超链接后,根据网站特点拼接成新的链接,继续爬取一次妹子

当然这里还是有很多问题:

  • 会出现重复的妹子,我们需要加入判断的机制,使得妹子不会被重复的爬取
  • 爬取的内容只是打印在控制台,我们需要另外的存储方式
  • ... ...

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务