当前位置: 首页 > news >正文

【Scrapy】Scrapy教程8——处理子链接

通过前面几篇文章,已经了解了如何去爬取网页内容并存储到数据库,但是目前只是存储了一个页面的内容,现在想要获取每篇文章链接内的文章内容,我们来看看怎么获取。

生成新请求

首先我们肯定要先拿到链接,所以第一步都获取文章标题和链接肯定少不了,然后再爬取获取到到子链接,对子链接进行解析出来拿到我们的文章内容。大概思路有了,下面我们直接实操下。
开始前,这里要介绍两个后面可能会用到的函数。

scrapy.Request

用于生成一个新的请求,并指定回调函数,但是需要提供一个完整的绝对链接。这里可以使用urljoin()函数进行url的拼接,组成完整的url。我们看下官方的例子。

import scrapy

class QuotesSpider(scrapy.Spider):
    name = "quotes"
    start_urls = [
        "https://quotes.toscrape.com/page/1/",
    ]

    def parse(self, response):
        for quote in response.css("div.quote"):
            yield {
   
                "text": quote.css("span.text::text").get(),
                "author": quote.css("small.author::text").get(),
                "tags": quote.css("div.tags a.tag::text").getall(),
            }

        next_page = response.css("li.next a::attr(href)").get()
        if next_page is not None:
            next_page 

相关文章:

  • Kafka集成Debezium监听postgresql变更
  • 快速入手-Django项目模版和静态文件(二)
  • 2025年03月10日人慧前端面试(外包滴滴)
  • 随笔(1)
  • 操作系统复习(第五章 输入与输出管理)
  • 重复的子字符串
  • linux常用符号
  • dcat-admin已完成项目部署注意事项
  • 软件工程面试题(三)
  • redis集群的原理是什么?
  • 【C语言】深入理解指针(一):从基础到高级应用
  • 新手村:逻辑回归-理解02:逻辑回归中的伯努利分布
  • 项目生命周期 和 项目管理生命周期的差异
  • 【002安卓开发方案调研】之Kotlin+Jetpack开发方案
  • 动态规划入门详解
  • 知识图谱中NLP新技术
  • HTML CSS 使div中的子元素横向排列,并均匀分布
  • Android集成Facebook登录与分享的常见问题及解决方案
  • VSCode 抽风之 两个conda环境同时在被激活
  • 用AI在云平台上用自然语言生成定制化SQL查询复杂数据库
  • 铁线礁、牛轭礁珊瑚礁“体检”报告首次发布,专家:菲非法活动产生胁迫性影响
  • 体坛联播|卡马文加预计伤缺三个月,阿尔卡拉斯因伤退赛
  • 成都一季度GDP为5930.3亿元,同比增长6%
  • 央行上海总部答澎湃:上海辖内金融机构已审批通过股票回购增持贷款项目117个
  • 漫游者秦龙,一生为经典画插图
  • 佩斯科夫:俄美总统会晤正在筹备中,未设定停火最后期限