zoukankan      html  css  js  c++  java
  • Scrapy学习-3-Request回调巧用

    基于twisted的异步回调

    使得页面爬取有阶段性和连续性

    from scrapy.http import Request
    from urllib import parse
    
    def parse(self, response):
    
        post_urls = response.css("a::attr(href)")
    
        for url in post_urls:
    
            # 有时候网站的href没有写全url,我们需要将域名添加到url前面,下面调用parse函数,拼接域名和资源路径
    
            yield Request(url=parse.urljoin(response.url, url), meta={}, callback=self.parse_detail)
    
        # 很多时候我们爬取的并不仅仅局限于一个网站上的内容,我们需要深度或广度遍历网站中的url,所以下边将继续对下一个url进行parse
    
        next_url = response.css(".next_page::attr(href)")
    
        if next_page:
    
            yield Request(url=parse.urljoin(response.url, url), meta={}, callback=self.parse)
    
    def parse_detail(self, response):
    
        front_data = response.meta.get('xxx', '')
        pass
  • 相关阅读:
    Maven项目类型和JAVASE项目和JAVAEE项目的关系
    使用faker 生成测试数据
    python 面向对象
    python csv读写
    分治
    django 部署
    js 时间格式转换
    python环境
    枚举
    递归
  • 原文地址:https://www.cnblogs.com/cq146637/p/9053152.html
Copyright © 2011-2022 走看看