Python:Scrapy CSV 导出不正确?

2024-03-02

我只是想写入 csv。但是,我有两个单独的 for 语句,因此每个 for 语句的数据独立导出并破坏顺序。建议?

def parse(self, response):
        hxs = HtmlXPathSelector(response)
        titles = hxs.select('//td[@class="title"]')
        subtext = hxs.select('//td[@class="subtext"]')
        items = []
        for title in titles:
            item = HackernewsItem()
            item["title"] = title.select("a/text()").extract()
            item["url"] = title.select("a/@href").extract()
            items.append(item)
        for score in subtext:
            item = HackernewsItem()
            item["score"] = score.select("span/text()").extract()
            items.append(item)
        return items

如下图所示,第二个 for 语句打印在其他语句的下方,而不是像 header 那样打印在“其中”。

CSV image attached:csv file

以及完整文件的 github 链接:https://github.com/nchlswtsn/scrapy/blob/master/items.csv https://github.com/nchlswtsn/scrapy/blob/master/items.csv


您导出元素的顺序与您在 CSV 文件中找到的顺序相符,首先导出所有标题,然后导出所有副文本元素。
我猜你是想废弃 HN 文章,这是我的建议:

def parse(self, response):
    hxs = HtmlXPathSelector(response)
    titles = hxs.select('//td[@class="title"]')
    items = []
    for title in titles:
        item = HackernewsItem()
        item["title"] = title.select("a/text()").extract()
        item["url"] = title.select("a/@href").extract()
        item["score"] = title.select('../td[@class="subtext"]/span/text()').extract()
        items.append(item)
    return items

我没有测试它,但它会给你一个想法。

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

Python:Scrapy CSV 导出不正确? 的相关文章

  • Python - 将宽字符字符串从二进制文件转换为 Python unicode 字符串

    这是漫长的一天 我有点困惑 我正在读取一个包含大量宽字符字符串的二进制文件 我想将它们转储为 Python unicode 字符串 为了解压非字符串数据 我使用 struct 模块 但我不知道如何对字符串执行相同的操作 例如 阅读 系列 一
  • python future 和元组解包

    实现像使用 future 进行元组解包这样的事情的优雅 惯用的方法是什么 我有这样的代码 a b c f x y g a b z h y c 我想将其转换为使用期货 理想情况下我想写一些类似的东西 a b c ex submit f x y
  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • pydev 调试器:严重警告:此版本的 python 似乎编译不正确(内部生成的文件名不是绝对的)[重复]

    这个问题在这里已经有答案了 通过运行 from sklearn datasets import fetch california housing import pandas as pd pd set option precision 4 m
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 使用 Python pandas 计算调整后的成本基础(股票买入/卖出的投资组合分析)

    我正在尝试对我的交易进行投资组合分析 并尝试计算调整后的成本基础价格 我几乎尝试了一切 但似乎没有任何效果 我能够计算调整后的数量 但无法获得调整后的购买价格有人可以帮忙吗 这是示例交易日志原始数据 import pandas as pd
  • C# 将数据写入 CSV 文件

    我正在尝试写入csv使用 C 语言逐行文件 这是我的功能 string first reader 0 ToString string second image ToString string csv string Format 0 1 n
  • 为什么在 Python 2.4 中使用 Unicode 数据会出现 ASCII 编码错误,而在 2.7 中却不会?

    我有一个程序 当在 Python 2 7 中运行时 会生成正确的 Unicode 输出到标准输出 当在 Python 2 4 中运行时 我得到UnicodeEncodeError ascii codec can t encode chara
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 在flatpak项目中使用scrapy脚本

    我正在构建一个 flatpak 构建的项目 我有一个按钮 当单击它时我希望它运行 scrapy 脚本来抓取数据 窗口用户界面
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 在 pytube3 中获取 youtube 视频的标题?

    我正在尝试构建一个应用程序来使用 python 下载 YouTube 视频pytube3 但我无法检索视频的标题 这是我的代码 from pytube import YouTube yt YouTube link print yt titl
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包

随机推荐

  • 将 CCAvenue 与 php 集成

    我是支付网关的新手 我想使用 PHP 将 CCAvenue 集成到我的网站 我已经下载了他们的集成工具包 包括我的商家 ID 和工作密钥 将帐户设置为活动状态 并尝试对他们在我的本地主机中提供的索引文件进行虚拟交易 但是 当我点击表单上的
  • 在新选项卡中打开 FPDF

    我有一个从帖子表单生成的 pdf fpdf 我希望 pdf 在新选项卡和 或窗口中打开 提示用户保存 pdf 我猜我需要将输出保存到字符串中 data pdf gt Output OfficeForm pdf S 但我到底可以用这个字符串做
  • JGit S3 仅支持标准美国存储桶?

    除了美国标准的 S3 存储桶之外 是否可以使用 JGit 的其他位置 即通过配置文件等 还是我在这里做错了什么 如果我尝试将位于 EU 的 S3 存储桶与 JGit 一起使用 jgit 会抛出错误 gt jgit push origin m
  • 在 API 23 / Marshmallow 中的 onOptionsItemSelected() 内的 recreate() 上出现错误

    我正在尝试使我的应用程序在 APIoptions menu 如果他们慢慢地点击菜单选项 这样就有时间看到该选项被突出显示 一切都很好 但如果他们短暂地点击 应用程序就会崩溃 我知道这是一种非常奇怪的行为 我花了一些时间试图理解是什么引发了错
  • cx_Freeze 复制路径

    我正在使用 cx Freeze 为我的 PyQt 应用程序生成 Windows 二进制文件 但生成的二进制安装程序似乎仍然包含对我的计算机上的文件的引用 生成二进制文件的那个 所以我无法将生成的安装程序分发到其他机器 当该程序在另一台计算机
  • tvOS 模拟器是否支持使用 Apple 登录 (SIWA)?

    我已在项目目标中启用 SIWA 的权利 相同的步骤在 iOS 模拟器中运行良好 我在 tvOS 模拟器上尝试使用 Apple SIWA 登录时遇到以下问题 重现问题的步骤 在点击自定义按钮请求 SIWA 时 全屏显示 Apple id 密码
  • 从用户位置查找数组中最接近的经度和纬度 - iOS Swift

    在发布的问题中here https stackoverflow com questions 24783442 find closest longitude and latitude in array from user location a
  • 如何复制 - 粘贴由 QStandardItemModel 创建的 QTableView 中的多个项目到文本/excel 文件?

    如何将 QTableView 的多个项目 值复制并粘贴到文本 Excel 文件 My Code tab table view QtGui QWidget self Tab insertTab 0 tab table view self Fi
  • React hooks - useState() 不会使用新状态更新重新渲染 UI

    我正在尝试新的 React Hooks 但我有点卡住了 因为更新本地状态时 UI 没有更新 这是我的代码 import React useState useEffect from react import Post from Post im
  • runas 不允许复杂的参数?

    我有一个应用程序 我试图在 Windows 7 和 Windows XP 瘦客户端上运行提升 但我似乎无法正确获取 runas exe 命令行 我知道我需要其中的反斜杠转义字符 以便 runas 正确解释空格 当将 run 作为已用反斜杠转
  • 如何将原始数据传递给asp.net core中间件

    我需要将一些数据传递到 ASP NET CORE 中间件 例如如果这是一个字符串列表 您是否使用与传递服务相同的机制 例如将其作为参数添加到 Invoke 方法中并向 DI 注册 如果是这样 您如何进行原始类型的注册 例如字符串列表 它必须
  • 在 R 中轻松输入相关矩阵

    我现在正在运行一个 R 脚本 当前使用 3 个相关变量 我想添加第四个 并且想知道是否有一种简单的方法来输入矩阵数据 特别是对于相关矩阵 一些类似Matlab的技术在R中输入相关矩阵 3x3或4x4 而不需要线性我一直在使用矩阵重塑 在 M
  • 如何让 prettier 打破所有联合类型?

    我要这个 type SomeType Variant1 Variant2 始终格式化为 type SomeType Variant1 Variant2 不管是否溢出指定的列宽 如果您需要对格式进行一定程度的控制 那么您可能不是 Pretti
  • matplotlib 中的直方图,x 轴上的时间

    我是 matplotlib 1 3 1 2 的新手 我找不到合适的起点 我想用 matplotlib 在直方图中绘制点随时间的分布 基本上我想绘制日期出现的累积总和 date 2011 12 13 2011 12 13 2013 11 01
  • 在 Java 中创建哈希的标准方法

    问题是关于在 Java 中创建哈希的正确方法 假设我有一个积极的BigInteger我想从中创建哈希的值 让我们假设下面的实例messageDigest是一个有效的实例 SHA 256 public static final BigInte
  • Docker 中的 Cassandra 无法从外部连接

    大家好 我是 Docker 和 Cassandar 这个词的新手 我从计算机连接到 Docker 中的 Cassandra 时遇到问题 我运行容器 Cassandra 我看到暴露的 ips 和端口是 192 168 99 100 9042
  • Android 无法通过互联网从 PC 服务器接收 UDP 数据

    我目前正在探索用Java 进行UDP 数据包传输 以在Android 上创建多人游戏 我使用通常的 127 0 0 1 成功地在 Nexus 4 内交换数据包 并且还成功地在本地网络中的 PC 服务器和 Android 客户端之间交换数据包
  • 使用 Maven 创建 META-INF/services 文件

    有没有办法使用 Maven 在 META INF services 中创建自定义服务文件 使用 Ant 可以这样做 https ant apache org manual Tasks jar html https ant apache or
  • 在实时数据库上运行 mysqldump

    只是想知道在实时数据库上运行 mysqldump 有哪些风险 是否存在数据库损坏的可能性 mysqldump 似乎锁定了整个数据库 您的数据库表使用什么引擎 如果您使用事务表 您可以使用选项 单事务 转储 这将以一致的状态转储您的表 如果您
  • Python:Scrapy CSV 导出不正确?

    我只是想写入 csv 但是 我有两个单独的 for 语句 因此每个 for 语句的数据独立导出并破坏顺序 建议 def parse self response hxs HtmlXPathSelector response titles hx