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指定的函数中进行

     

  • 相关阅读:
    OS-lab4
    OS-lab3
    OS-lab2
    OS-lab1
    OO第四单元总结
    OO第三单元总结
    OO第二单元总结
    HTTP_POST
    实习日志1(2020.7.27-2020.9.31)
    Web app ------ 从Servlet读取Json数据并显示,生成历史数据曲线图
  • 原文地址:https://www.cnblogs.com/sxy-blog/p/13215776.html
Copyright © 2011-2022 走看看