如何使用scrapy将多个页面的数据收集到单个数据结构中

2024-01-11

我正在尝试从站点中抓取数据。数据被构造为多个对象,每个对象都有一组数据。 例如,人员的姓名、年龄和职业。

我的问题是这些数据在网站中分为两个级别。
例如,第一页是姓名和年龄的列表,其中包含指向每个人的个人资料页面的链接。
他们的个人资料页面列出了他们的职业。

我已经有一个用 python 写的 scrapy 的蜘蛛,它可以从顶层收集数据并爬行多个分页。
但是,如何从内部页面收集数据,同时保持其链接到适当的对象?

目前,我的输出结构为 json

   {[name='name',age='age',occupation='occupation'],
   [name='name',age='age',occupation='occupation']} etc

parse函数可以这样跨页面吗?


这是你需要处理的方法。当项目具有所有属性时,您需要生成/返回项目一次

yield Request(page1,
              callback=self.page1_data)

def page1_data(self, response):
    hxs = HtmlXPathSelector(response)
    i = TestItem()
    i['name']='name'
    i['age']='age'
    url_profile_page = 'url to the profile page'

    yield Request(url_profile_page,
                  meta={'item':i},
    callback=self.profile_page)


def profile_page(self,response):
    hxs = HtmlXPathSelector(response)
    old_item=response.request.meta['item']
    # parse other fileds
    # assign them to old_item

    yield old_item
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用scrapy将多个页面的数据收集到单个数据结构中 的相关文章

随机推荐

  • 具有图案和图像元素的 SVG 转换为 PNG 图像失败

    我试图将 Raphael js 生成的 svg 转换为 PNG 图像 好吧 当 svg 没有图案和图像组件时 我将 svg 转换为图像 然后 当我将这两个组件添加到 SVG 中时 就会出现问题并且转换失败 完整的小提琴是 here http
  • Ninject Kernel.Get 和构造函数注入之间的不同行为

    我有什么 public interface IBla public class Bla1 IBla public class Bla IBla public class Consumer private readonly IBla arra
  • 在 Dart 中使用“this”关键字是什么意思?

    如果这听起来像是一个极其愚蠢的问题 我很抱歉 但它确实一直困扰着我 什么是 这个 我看到了吗 每当我看到 flutter 中的文档时 我都会看到它被用于文档中的以下内容 this initialRoute this onGenerateRo
  • 如何给UIButton的按钮文本添加下划线?

    文本来自数据库 我想将它用作按钮并在按钮的文本下划线 我怎样才能做到这一点 在 iOS 6 中 NS属性字符串用于修改文本 您可以使用 NSMutableAttributedString 使用单个 UIButton 或 UILabel 进行
  • Internet Explorer 上使用大括号的 AngularJS 数据绑定问题

    我在这里做错了什么 我已经读过IE兼容性指南 http docs angularjs org guide ie但这没有提到使用 标签进行数据绑定 这在其他浏览器上工作正常 但在 IE 包括 IE9 中失败 http jsfiddle net
  • elm 中的类型继承

    我想要实现的是类型继承 我的意思是 我希望能够让函数返回 子类型 然后让函数返回 超类型 让我举一个例子 假设我有一个主视图组件 它返回一个 Html Msg view Model gt Html Msg view model div cl
  • Oracle 会淘汰 10gAS 转而采用 WebLogic 吗?

    Oracle 购买了 BEA 及其 WebLogic 工具套件 他们在自己的 10gAS 应用服务器中仍然有竞争产品 两者都是Java EE http en wikipedia org wiki Java Platform Enterpri
  • 如何以编程方式替换/更改图像按钮android

    我的视图上有一个图像按钮 我需要在用户交互后更改它 我没有找到类似的东西myImageButton setDrawable这是我想要更改的按钮的 xml
  • 如何使用 Gradle 创建发布签名的 apk 文件?

    我想让我的 Gradle 构建使用 Gradle 创建一个发布签名的 apk 文件 我不确定代码是否正确或者我在执行时是否缺少参数gradle build 这是我的一些代码build gradle build gradle kts file
  • 全二叉树的叶节点数

    Problem求一棵有 n 个节点的满二叉树的叶节点数 我为上述问题编写了一个递归程序 遍历树并在到达没有子节点的节点时增加叶节点的数量 但由于树是一个完整的二叉树 我认为这会让问题变得更容易 但我不知道如何解决 能否以紧凑的形式 类似于公
  • 如何确定我是否作为控制台应用程序运行? (Win32 上的德尔福)

    我有一个通用单元 可以将一些日志记录到 GExperts Debugger 和 或 OutputDebugString 我将在控制台应用程序中使用它 所以我希望它能够通过输出到标准输出writeln 主要可执行文件已经有 APPTYPE C
  • 如何将XAMPP中的phpMyAdmin升级到最新版本?

    如何在不影响数据库 设置和文件的情况下将XAMPP中的phpMyAdmin升级到最新版本 该网站将对您的目的有用 https www ostraining com blog coding update phpmyadmin https ww
  • 如何强制 Apache 使用最新安装的 PHP 版本

    我使用以下命令从 PHP 版本 5 5 9 1ubuntu4 17 升级到 PHP 5 6 23 1 deb sury org trusty 2 apt get y update add apt repository ppa ondrej
  • 如何使用包内 Excel 文件第一行中指定的列名称?

    谁能告诉我如何更改默认列名称 F1 F2 F3等 将数据从 Excel 源导入到 SSIS 2005 中的 OLEDB 目标时 示例 我的 Excel 电子表格中的数据如下所示 Title ProvinceID DistrictID Con
  • 调试 Windows 服务的更简单方法

    有没有比通过 Windows 服务控制管理器启动服务然后将调试器附加到线程更简单的方法来逐步执行代码 这有点麻烦 我想知道是否有更直接的方法 如果我想快速调试服务 我只需添加一个Debugger Break 在那里 当到达该线时 它会将我带
  • 如何使用ffmpeg的sws_scale()调整图片大小?

    我想使用 ffmpeg 的 func gt sws scale 来调整图片大小 有谁知道该怎么做吗 有这个函数的源码吗 首先你需要创建一个SwsContext 您只需执行一次 struct SwsContext resize resize
  • 暂停新的 BackGroundWorker 直到前一个完成

    我正在努力解决线程问题 问题是当我迭代 foreach 循环时 设置时this Document 应用程序执行登录 这是由事件触发的 需要几秒钟才能完成 在里面worker RunWorkerCompleted方法 我需要执行一些取决于当前
  • 如何在 SQLAlchemy 列/外键混合中指定 PostgreSQL 架构?

    现有的 PostgreSQL 数据库具有以不同 模式 组织的表 以分割大型数据库 既用于扩展 又在服务器级别实现微调的安全性 同样 declarative base 表描述被组织在包中的不同文件中 每个模式一个文件 package init
  • 类似 IOS 7 天气 APP 的过渡/动画

    我想实现iOS天气应用程序 如转换 ListView 点击列表项它会展开到详细视图 或者捏合列表也会展开到详细视图 左右滑动过渡 请让我知道如何实施 提前致谢 Here is 我在博客上找到的一些帖子 http www teehanlax
  • 如何使用scrapy将多个页面的数据收集到单个数据结构中

    我正在尝试从站点中抓取数据 数据被构造为多个对象 每个对象都有一组数据 例如 人员的姓名 年龄和职业 我的问题是这些数据在网站中分为两个级别 例如 第一页是姓名和年龄的列表 其中包含指向每个人的个人资料页面的链接 他们的个人资料页面列出了他