属性错误:“NoneType”对象没有属性“parent”

2024-02-21

from urllib.request import urlopen
from bs4 import BeautifulSoup
html= urlopen("http://www.pythonscraping.com/pages/page3.html")
soup= BeautifulSoup(html.read())
print(soup.find("img",{"src":"../img/gifts/img1.jpg"
}).parent.previous_sibling.get_text())

上面的代码工作正常,但下面的代码不行。它给出了如上所述的属性错误。谁能告诉我原因吗?

from urllib.request import urlopen       
from bs4 import BeautifulSoup
html= urlopen("http://www.pythonscraping.com/pages/page3.html")
soup= BeautifulSoup(html.read())
price =soup.find("img",{"src=":"../img/gifts/img1.jpg"
}).parent.previous_sibling.get_text()
print(price)

谢谢! :)


如果您比较第一个版本和第二个版本,您会注意到:

First: soup.find("img",{"src":"../img/gifts/img1.jpg"}).parent.previous_sibling.get_text()

  • Note: "src"

Second: soup.find("img","src=":"../img/gifts/img1.jpg"}).parent.previous_sibling.get_text()

  • Note: "src="

第二个代码返回Attribute Error:'NoneType' object has no attribute 'parent'因为它找不到src=="../img/gifts/img1.jpg"在提供的汤中。

所以,如果你删除=在第二个版本中,它应该可以工作。


顺便说一句,您应该明确要使用哪个解析器,否则bs4将返回以下警告:

UserWarning:没有明确指定解析器,所以我使用最好的 该系统可用的 HTML 解析器(“lxml”)。这通常不是一个 问题,但是如果您在另一个系统或不同的系统上运行此代码 虚拟环境,它可能使用不同的解析器和行为 不同。

要消除此警告,请更改如下所示的代码:

BeautifulSoup([你的标记])

to this:

BeautifulSoup([您的标记], "lxml")

因此,正如警告消息中所述,您只需更改soup = BeautifulSoup(html.read()) to soup = BeautifulSoup(html.read(), 'lxml'), 例如。

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

属性错误:“NoneType”对象没有属性“parent” 的相关文章

  • 如何使用Python将RGB565字节数组转换为RGB888字节数组?

    根据我的问题RGB888 转 RGB565 https stackoverflow com questions 61519934 how can i use opencv python to convert rgb888 to rgb565
  • 有没有办法使用 Mayavi 填充陀螺仪表面的一侧?

    我正在使用 Mayavi 绘制陀螺仪的等值面 我的问题是我需要通过填充两个生成区域的一侧来获得更坚固的结构 在下面的图片中 您可以看到我生成的等值面的外观以及填充一侧后的外观 我生成的等值面 它应该是什么样子 等值面可以通过以下方程生成 U
  • 使用 scikit 确定每个特征对特定类别预测的贡献

    我正在使用 scikit 额外的树分类器 model ExtraTreesClassifier n estimators 10000 n jobs 1 random state 0 一旦模型拟合并用于预测类别 我想找出每个特征对特定类别预测
  • pandas 用 nan 值切割了一系列

    我想将 pandas cut 函数应用于包含 NaN 的序列 期望的行为是它对非 NaN 元素进行存储并为 NaN 元素返回 NaN import pandas as pd numbers with nan pd Series 3 1 2
  • Python:合并嵌套列表

    初学者在这里 我有 2 个要合并的嵌套列表 list1 a b c d e f g h list2 p q r s t u v w 我正在寻找的输出是 list3 a p q b c r s d e t f g h u v w 这可以在没有
  • 如何从numpy数组中获取两个最小值

    我想从数组中取出两个最小值x 但是当我使用np where A B np where x x min 0 1 我收到此错误 ValueError 需要超过 1 个值才能解压 我该如何修复这个错误 我需要在数组中按升序排列数字吗 您可以使用n
  • 对seaborn图中的分类x轴进行排序

    我正在尝试使用 seaborn 散点图绘制数据框中前 30 的值 如下所示 同一图的可重现代码 import seaborn as sns df sns load dataset iris function to return top 30
  • 抓取多个帐户,即多次登录

    我可以成功抓取单个帐户的数据 我想在一个网站上抓取多个帐户 这意味着多次登录 如何管理登录 注销 您可以在每个帐户会话中使用多个 cookiejar 并行抓取多个帐户 请参阅 cookiejar 请求元密钥http doc scrapy o
  • 我的本地 postgresql 数据库 url 的形式是什么?

    我正在学习 Flask sqlalchemy 教程https pythonhosted org Flask SQLAlchemy quickstart html a minimal application https pythonhoste
  • 向 list.extend() 传递不可迭代对象

    我正在创建一个公共方法来允许调用者将值写入设备 例如将其称为 write vals 由于这些值将实时输入 因此我希望通过允许用户输入列表或单个值来简化用户的生活 具体取决于他们需要写入的值的数量 例如 write to device 1 2
  • Python 2to3 Windows CMD

    我已经安装了 python 32 包到 C python32 我还设置了路径 Python 路径 C Python32 Lib C Python32 DLLs C Python32 Lib lib tk 路径 C Python32 我想使用
  • Django 1.7.1 需要字段的默认值 - 但数据库中没有条目。为什么?

    我遇到了一个奇怪的问题 我在 Mac OS X Yosemite 上使用 Django 1 7 1 并且配置了本地 MySQL 数据库 通常 我创建一个模型 如果我想添加另一个字段 我只需做一个 manage py migrateDjang
  • PHPQuery WebBrowser 插件 - 使用 cookies

    我正在尝试使用 PHPQuery 的 WebBrowser 插件登录网站 我能够成功登录 但我不确定如何重用上一次调用中的 cookie 到下一次调用 client phpQuery browserGet https website com
  • 为什么 Python 的 argparse 对 SystemExit 使用错误代码 2?

    当我给 Python 的 argparse 输入它不喜欢的输入时 它会引发一个代码为 2 的 SystemExit 其中似乎意味着 没有这样的文件或目录 https docs python org 2 library errno html
  • 从html中获取属性字符串值

    我正在构建一个宏来使用从网站提取数据vba questions tagged vba 目前 我可以使用元素语法轻松地从表内容中获取值 例如obj getElementsByTagName td innerText 但是 当某些单元格中有一些
  • TensorFlow - 为什么这个 softmax 回归没有学到任何东西?

    我的目标是用 TensorFlow 做大事 但我正在尝试从小事做起 我有一些小的灰度方块 有一点噪音 我想根据它们的颜色对它们进行分类 例如 3 个类别 黑色 灰色 白色 我编写了一个小 Python 类来生成正方形和 1 hot 向量 并
  • 返回 OSError 异常类的子类实例的逻辑在哪里?

    我一直在寻找一些对某些人来说可能相对愚蠢的东西 但对我来说非常有趣 输入和输出错误已合并为OSError在 Python 3 3 中 异常类层次结构发生了变化 关于内置类的一个有趣的特性OSError是这样 它在传递时返回它的子类errno
  • 在 matplotlib 中添加新的导航模式

    我正在编写一个 wx matplotlib 应用程序 并且在向 matplotlib 导航工具栏添加新工具时遇到相当大的困难 基本上我想添加选择工具 选取框 套索等 以切换受控子图的鼠标模式 到目前为止 我还没有找到任何功能可以让我轻松地做
  • 设置restrict_xpaths设置后出现UnicodeEncodeError

    我是 python 和 scrapy 的新手 将restrict xpaths 设置设置为 table class lista 后 我收到了以下回溯 奇怪的是 通过使用其他 xpath 规则 爬虫可以正常工作 Traceback most
  • 将 sudo 与 Python 脚本结合使用

    我正在尝试编写一个小脚本来在每次执行脚本时安装 VirtualBox 共享文件夹 我想用Python 来做这件事 因为我正在尝试学习它来编写脚本 问题是我需要特权才能启动挂载命令 我可以将脚本作为 sudo 运行 但我更喜欢它自己创建 su

随机推荐

  • 图神经网络中的梯度爆炸问题

    我有一个梯度爆炸问题 尝试了几天后仍无法解决 我在 TensorFlow 中实现了一个自定义消息传递图神经网络 用于根据图数据预测连续值 每个图表都与一个目标值相关联 图的每个节点由节点属性向量表示 节点之间的边由边属性向量表示 在消息传递
  • 存储后端如何影响 Datomic?

    我该如何选择 Datomic 的后端存储服务 选择 DynamoDB 而不是 Postgres 是一个偏好问题 还是每个选项都有不同的权衡 如果有 它们是什么 存储服务要求 Datomic 的存储服务一般应满足 3 个要求 实施键值存储语义
  • 如何计算三次贝塞尔曲线的控制点

    在执行三次贝塞尔曲线程序时我发现它使用端点为 10 10 0 和 0 1 0 其他控制点为 5 10 2 和 10 5 2 我不能了解他们是如何获得其他控制点的请帮我找到它们的任何公式或方法 Edit 如果你想让贝塞尔曲线平滑地通过N个点且
  • 构建 Cython 模块时如何覆盖 -DNDEBUG 编译标志

    我有一个 Cython 模块 通过调用 C 函数cdef extern C 函数有assert 声明 我想核实这些说法 但是 当我通过调用创建模块时python setup py build ext inplace GCC 总是被调用 DN
  • 背景:颜色在 IE8 中不起作用

    body background gray font family sans serif width 960px margin auto header background green border 10px solid black nav
  • 单词标记化与传统词形还原?

    我正在研究 NLP 预处理 在某些时候 我想实现一个上下文相关的词嵌入 作为辨别词义的一种方式 并且我正在考虑使用 BERT 的输出来实现这一点 我注意到 BERT 使用 WordPiece 标记化 例如 playing gt play i
  • Windows 7 64 位的 Moto G USB 调试问题

    我尝试搜索是否有任何建议 但找不到足够的建议 因此这个问题可以帮助我 我已经安装了 Motorola USB 驱动程序并启用了 USB 调试模式以及启用了 MTP 该设备在 Eclipse 中显示为可用状态不到一分钟 然后返回离线模式 我尝
  • iOS 应用内购买上的收据验证返回多笔交易

    沙盒模式下的应用内购买会返回同一产品 ID 上的多个交易 使用语言 Swift 4 0 func validateAppReceipt receipt Data let base64encodedReceipt receipt base64
  • 在 NativeScript 应用程序中与 TextField 交互时停止键盘覆盖

    使用用户可以输入输入的 NativeScript 应用程序视图时 本机应用程序键盘输入会覆盖TextField成分 虽然这不会阻止用户输入文本 但它会扰乱用户体验流程 并且从 UI 角度来看看起来很糟糕 如何让键盘不覆盖输入 而是像其他本机
  • SQL Server - 将变量传递给存储过程时遇到问题

    我知道这是一个基本问题 但我无法找到完成此任务的正确方法 我需要将变量传递给 SQL Server 2008 存储过程并返回查询 这是存储过程 CREATE PROCEDURE pOrders AS DECLARE enteredClien
  • 我可以在 Struts 中提供 SEO 友好的 url 吗?

    我想在我的应用程序中拥有 SEO 友好的 url 它将使用 Struts 1 2 在 java j2ee 中构建 我有一些分类如下 county countryname county state statename county state
  • PHP 如何发送原始 HTTP 数据包

    我想将原始 http 数据包发送到网络服务器并接收其响应 但我找不到方法来做到这一点 我对套接字缺乏经验 我发现的每个链接都使用套接字发送 udp 数据包 任何帮助都会很棒 看一下这个简单的例子fsockopen手册页 http docs
  • 动画元素替换[重复]

    这个问题在这里已经有答案了 请告诉我如何使容器根据子元素的高度平滑地增加和减少高度 我的代码可以在没有动画的情况下工作 setTimeout gt document getElementById page1 style display no
  • Selendroid 作为网络抓取工具

    我打算创建一个 Android 应用程序 该应用程序执行无头登录到网站 然后从后续页面中抓取一些内容 同时维护登录会话 我第一次使用HtmlUnit http htmlunit sourceforge net 在一个普通的 Java 项目中
  • 在 SQL 中,UPDATE 总是比 DELETE+INSERT 快吗?

    假设我有一个简单的表 其中包含以下字段 ID int 自增 身份 主键 名称 varchar 50 唯一 有唯一索引 Tag int 我从不使用 ID 字段进行查找 因为我的应用程序始终基于使用 Name 字段 我需要不时更改标签值 我正在
  • 检查字符串是否是从子字符串列表构建的算法

    给你一个字符串和一个字符串数组 如何快速检查该字符串是否可以通过连接数组中的某些字符串来构建 这是一个理论问题 出于实际原因我不需要它 但我想知道是否有一些好的算法 EDIT阅读一些答案我注意到 这可能是 NP 完全问题 即使找到字符串的子
  • 缓存 JSON:Apache、PHP、jQuery

    我正在尝试缓存由数据库中的 php 脚本生成的 JSON 内容 然而 数据集非常稳定 几乎没有变化或添加 这意味着数据可能会持续数周保持不变 问题是它包含一个 LOB 列 并且加载时间很长 与从文本文件提供 json 相比要长 这意味着 g
  • MSExchange URL 编码

    我正在编写一个 PHP 服务来通过 WebDAV 查询 Exchange 服务器 该服务已经上线大约一个月 没有出现任何问题 但今天遇到了一些问题 因为邮箱中收到了一封具有以下主题行的电子邮件 FW 每日审批报告 供应商 主 007297
  • SessionNotCreatedError: 会话未创建: 此版本的 ChromeDriver 仅支持 Chrome 版本 97 当前浏览器版本为 100.0.4896.75

    我正在尝试启动 selenium webdriver 实例 但出现此错误 SessionNotCreatedError session not created This version of ChromeDriver only suppor
  • 属性错误:“NoneType”对象没有属性“parent”

    from urllib request import urlopen from bs4 import BeautifulSoup html urlopen http www pythonscraping com pages page3 ht