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

用于div标记的Xpath排除span标记并返回文本

艾弘义
2023-03-14

下面的HTML代码需要xpath

  <div itemtype="http://schema.org/PostalAddress" itemscope="" itemprop="jobLocation">
  <div class="aiDetailJobInfoLabel aiDetailJobInfoLocation">Location: </div>
  <div class="aiDetailJobInfo aiDetailJobInfoLocation">
     <span itemprop="addressLocality">Topeka</span>
      , KS
      <span itemprop="postalCode">66607</span>
  </div>
</div>
 >>> response.xpath('//div[@itemprop="jobLocation"]/div[@class="aiDetailJobInfo aiDetailJobInfoLocation"][not(child::span[@itemprop="postalCode"])]//text()').extract()
output: Topeka, KS, 66607

仅供参考:xpath将具有排除邮政编码的div text(),以便返回剩余的div和span文本。有时postalCode不在这个div标记中。因此,如果它存在,跳过它,如果不返回整个div标记文本。

共有1个答案

巩衡
2023-03-14

这里我分享了2段代码。你可以拿走任何你需要的东西。

试试这个:

response.xpath('//div[@class="aiDetailJobInfo aiDetailJobInfoLocation"]//text()').re(r'[ .a-zA-Z]\w+')



response.xpath('//div[@class="aiDetailJobInfo aiDetailJobInfoLocation"]//text()').re(r'[a-zA-Z]+')


response.xpath('//div[@itemprop="jobLocation"]/div[@class="aiDetailJobInfo aiDetailJobInfoLocation"]//text()').extract()[1:3] 
 类似资料:
  • 我有以下html片段: 我已经用以下XPath找到了该元素: 谢谢,里亚斯

  • 我有一个任务,需要在web应用程序内部的几个页面上添加一些标记。文本已经存在,但包装在其他标签中,我需要将其转换为h1标签。当我这样做的时候,我需要在页面上保持相同的设计,所以设计明智,什么都不应该改变。我们需要谷歌机器人的h1标签。 让我在下面给你展示一个例子。目前我有一页是这样的: null null 我需要在那里插入。我在internet上读到,在中添加不是一个好主意,因为我的第一个想法是用

  • 你好,我试图使用JSoup提取嵌套DIV标签中的span标签。下面的代码只是较大代码的一个片段。 我试图提取最后一个SPAN标签中的文本(多伦多C08,莫斯公园,多伦多和120-21-S) 我已经成功地解析了文档的其他部分,但是,我似乎无法隔离这些跨度。代码片段来自一个更大的页面(整页)。我可能使用了错误的方法,但下面是我为捕获父DIV之间的跨度所做的工作(结果在帖子顶部)。 所以现在我有了第一个

  • 我想在段落内用span标记包装每个单词。当段落中没有HTML标记时,我成功地创建了它。但是当段落内有HTML标记时,它就会变得一团糟。 下面是段落中没有HTML标记时的示例: null null 但是当段落中有HTML标记时,它就会变得乱七八糟,如下所示: null null 谢谢DrunkenPoney的努力。他做的最多,但它已经打破了内部跨度的内容。 我希望结果是这样的,浏览器中出现的每个单词

  • 我正在写一个chrome扩展,它将改变屏幕上某些单词的颜色。我很难找到符合我需要的文本,然后准确地将它包装成一个跨度。html中的同一个单词通常会在页面的其他位置被替换,从而使链接和样式变得毫无用处。 我的示例代码如下:

  • 我有一个带有左侧菜单的网页。它由许多div标签组成。我注意到当我的Selenium Python脚本运行时,它没有单击我想要从左侧菜单中单击的文本。它正在单击其他东西。我的Xpath不正确。 我想找到包含父div文本“Analysis”的文本“Statistics”(位于div标记中) 它没有单击正确的文本“Statistics”,因为HTML源代码中可能还有另一个“Statistics”。如果我