【问题标题】:Can't Scrape Attribute of <Input> from Sibling Element无法从同级元素中刮取 <Input> 的属性
【发布时间】:2015-06-21 17:03:59
【问题描述】:

我正在尝试使用 Symfony2、Goutte 和 DomCrawler 抓取一些数据。我有一个棘手的情况,我需要在&lt;td&gt; 中获取属性的值。

工作部分:

    $query = "//td[normalize-space(text()) = 'Event Title']/following-sibling::td[1]";
    $crawler->filterXPath($query)->each(function($crawler, $i) {
        echo $crawler->text();// . $i . PHP_EOL;
    });


<tr>
    <td>Event Title</td> 
    <td>the title is here</td> 
</tr>

嗯,现在是:

<tr>
    <td>Event Title</td> 
    <td><input value="thisiswhatIneed"></td> 
</tr>

我正在尝试更改选择器

$query = "//td[normalize-space(text()) = 'Presenter']/following-sibling::td[1]/input[value]"; 

知道如何继续遍历,以便我可以访问 &lt;input&gt; 以获得它的属性 value="" 是什么?

【问题讨论】:

  • 在黑暗中拍摄。是否有 next::input[value] 类型的选择器?
  • 当我点击它时似乎不起作用。不过感谢您的帮助。

标签: php symfony web-scraping goutte domcrawler


【解决方案1】:

由于valueinput 的属性,您需要稍微更改您的xpath 查询:

$query = "//td[normalize-space(text()) = 'Presenter']/following-sibling::td[1]/input/@value"; 

参见示例here

【讨论】:

  • 太棒了,效果很好!只需将/input/@value 添加到末尾,它就正确地找到了我想要的东西。再次感谢!
  • @Kenny,很高兴我能帮到你。
猜你喜欢
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多