【问题标题】:How to get the <strong> next of double quotes values on dom element php [closed]如何在dom元素php上获取双引号值的<strong>下一个[关闭]
【发布时间】:2020-08-31 12:52:27
【问题描述】:

我想 scrape 页面,但在那些页面中,它们提供了如下所示的值,但我使用 elementby 标记名获取元素,我不能怀疑强标签旁边的引号值,任何人都可以帮忙我。

<br>
<br>
<strong>Location</strong>
"India,calculata
"
<br>
<br>

【问题讨论】:

  • 请不要只求我们为您解决问题。向我们展示您是如何尝试自己解决问题的,然后向我们确切展示结果是什么,并告诉我们您为什么觉得它不起作用。向我们明确解释什么不起作用并提供a Minimal, Complete, and Verifiable example。阅读How to Ask 一个好问题。请务必take the tour 并阅读this
  • 我尝试使用 php 中的 dom 文档的 curl 函数,我尝试了示例代码,如下所示 $table = $dom->getElementById('JobDesc3606816961'); foreach($table->getElementsByTagName('strong') as $tablelist) {$tablelist->nodeValues} 以获得强标签值的响应,除了我需要下一个强标签值示例,我使用强标签来获取位置名称,但我需要印度的值和计算
  • 如果你想要 India,calculata,抓住包裹它的父元素,然后从里面移除垃圾,你需要做一些调整,因为它不是一个很好的结构化 DOM ..即:3v4l.org/3KV2l
  • 好的,谢谢您的回复。nodevalues 包含所有值,如何拆分国家、城市和所有$table = $dom->getElementById('JobDesc3606816961') foreach($table-> getElementsByTagName('div') as $tablelist) { echo $tablelist->textContent."\n";} 我得到国家的总体价值:印度城市:德里

标签: php dom web-scraping element


【解决方案1】:

基于当前代码(来自注释),您只需从访问当前元素值更改为下一个子值(使用nextSibling)...

$table = $dom->getElementById('JobDesc3606816961'); 
foreach($table->getElementsByTagName('strong') as $tablelist) {
    echo $tablelist->nextSibling->nodeValue;
}

【讨论】:

  • 非常感谢 Nigel、lawrence 和 jay,问题已解决
猜你喜欢
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 2016-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-04
相关资源
最近更新 更多