zoukankan      html  css  js  c++  java
  • Scrapy框架(三)--全站数据爬取

    scrapy基于Spider类的全站数据爬取

    大部分的网站展示的数据都进行了分页操作,那么将所有页码对应的页面数据进行爬取就是爬虫中的全站数据爬取。
    基于scrapy如何进行全站数据爬取呢?
    1.将每一个页码对应的url存放到爬虫文件的起始url列表(start_urls)中。(不推荐)
    2. 使用Request方法手动发起请求。(推荐)
    需求:爬取校花网中的照片的名称

    # -*- coding: utf-8 -*-
    import scrapy
    
    
    class XiahuaSpider(scrapy.Spider):
        name = 'xiahua'
        # allowed_domains = ['www.xxx.com']
        start_urls = ['http://www.521609.com/daxuemeinv/']
    
        url = 'http://www.521609.com/daxuemeinv/list8%s.html' # 设定一个url模板
        page_num = 2
        def parse(self, response):
            li_list = response.xpath('//*[@id="content"]/div[2]/div[2]/ul/li')
            for li in li_list:
                img_name = li.xpath('./a[1]/img/@alt').extract_first()
                print(img_name)
            if self.page_num <= 23: # 设总共23页
                new_url = format(self.url%self.page_num)
                self.page_num+=1
                yield scrapy.Request(url=new_url,callback=self.parse) # 手动发起请求 数据解析在callback指定的函数中进行

     

  • 相关阅读:
    iOS 添加微信分享
    IOS学习笔记——ViewController生命周期详解
    UI之CALayer详解(转)
    iOS CALayer讲解
    [leetcode] Minimum Path Sum
    [leetcode]Binary Tree Maximum Path Sum
    我是真的想去google啊
    C++ string 用法详解
    继续存博客
    bash中 2>&1 & 的解释
  • 原文地址:https://www.cnblogs.com/sxy-blog/p/13215776.html
Copyright © 2011-2022 走看看