当前位置: 首页 > 知识库问答 >
问题:

如何使用xpath解析嵌套的html标签

洪弘亮
2023-03-14

这是我的示例html代码。

使用HtmlXpath Selector我需要解析html文件。

def parse(自己,响应):edxData=HtmlXpath Selector(响应)

  1. 首先,我需要获取所有包含 edxData.xpath 的标记('//h2[@class = “标题课程-标题”]')
  2. 在该标签内,我需要检查标签值。
  3. 然后需要解析带有类名字幕课程 - 字幕复制 - 详细信息的div标签。

示例html响应数据:

 <html>
 <body>
 <h2 class="title course-title">
 <a href="https://www.edx.org/course/mitx/mitx-14-73x-challenges-global-poverty-1350">The Challenges of Global Poverty
 </a>
 </h2> 
 <div class="subtitle course-subtitle copy-detail">A course for those who are interested in the challenge posed by massive and persistent world poverty.
 </div>
 </body>
 </html>  

共有1个答案

萧煜
2023-03-14

循环内部标记的一种方法是:

>>> for h2 in sel.xpath('//h2[@class = "title course-title"]'):
...     print h2.xpath('a')
... 
[<Selector xpath='a' data=u'<a href="https://www.edx.org/course/mitx'>]

或者甚至简单地说:

>>> sel.xpath('//h2[@class = "title course-title"]/a')
[<Selector xpath='//h2[@class = "title course-title"]/a' data=u'<a href="https://www.edx.org/course/mitx'>]

要找到另一个xpath,只需执行:

>>> sel.xpath('//div[@class="subtitle course-subtitle copy-detail"]')
[<Selector xpath='//div[@class="subtitle course-subtitle copy-detail"]' data=u'<div class="subtitle course-subtitle cop'>]

看起来你在使用scrapy,请将这个问题标记为

 类似资料:
  • 问题内容: 我正在尝试从上述JSON检索邮政编码。我正在用gson解析它。我是JSON的新手,从我在这里的所有文章中读到的内容(有些与此类似),我都知道字段名称应保持原样。所以我知道我必须做出4类,即响应,视图,结果和地址。我使它们成为静态嵌套类,但是我只得到空值作为输出。在下一个JSON中,我有多个地址。但是我只停留在这个单一的回应上。 举一个简短的例子,我尝试使用此代码检索Timestamp,

  • 我想做的是使用Gson将嵌套的json数据解析为Java对象,并使用自定义的toString()将其打印出来。 Json内容 POJO类:示例 POJO类:JsonFormatter 我的POJO还有其他类,我试图将其解析为Gson的方式是: 但是当我试图打印出它的子值时,比如 我得到了错误: 我想实现的是将上面的json内容打印成这样: 谁能帮我解决这个问题吗?提前谢谢!

  • 问题内容: 在.Net中,我发现了一个很棒的库HtmlAgilityPack,它使您可以使用XPath轻松解析格式不正确的HTML。我已经在.Net站点中使用了几年,但是我不得不为我的Python,Ruby和其他项目选择更痛苦的库。有人知道其他语言的类似库吗? 问题答案: 在python中,ElementTidy解析标记汤并生成一个元素树,该树允许使用XPath进行查询:

  • 问题内容: 我必须与API进行交互,并且响应格式(根据我的阅读)似乎结构不良。我发现一个Google 网上论坛在这里回答了一个类似的问题,但是我在实现Response类来处理Gson.fromJson时遇到了麻烦。有没有我想念的例子? 问题答案: JSON对象可以由或Javabean类表示。这是一个使用Javabean的示例。 如下使用它:

  • 问题内容: 我正在尝试使用具有以下结构的Java中的gson解析一些JSON数据,但是通过在线查看示例,我找不到任何能完成此工作的东西。 有人可以协助吗? 问题答案: 您只需要创建一个Java类结构即可表示JSON中的数据。为了做到这一点,我建议您将JSON复制到此在线JSON Viewer中 ,您会发现JSON的结构更加清晰… 基本上,您需要这些类(伪代码): 请注意,您的类中的属性名称必须与J

  • 我收到了来自Kafka的JSON字符串,需要由PySpark处理。字符串如下所示: 我的计划是将字符串分成JSON字段。为此,我定义了以下模式: 但是,使用此架构会导致以下错误: 但是,如果我使用没有嵌套字段的模式(如下所示),我可以解析: 我的目标是得到这样的输出: 我想在这方面得到一些帮助。现在我可以得到除嵌套结构之外的所有字段。 我使用的模式如下: Adam提到的模式适用于这个特定的字符串。