我正在尝试访问前一个兄弟姐妹的属性,但事实证明这很困难。
所以基本上我试图抓取的网页是可怕的,并且锚标签使用糟糕的 onclick 而不是 href。愚蠢,我知道。我试图首先找到包含 onclick 的锚标记window.open('servletLinkJunkHere...')
,然后移动到上一个兄弟,这是一个img
标记,并从中提取src
属性。
<IMG SRC="images/warning.gif" ALT="blah blah blah" STYLE="position:relative;top:2px;cursor:help;">
<a href="#" onclick="javascript:window.open('servletLinkJunkHere...')>
这是我正在尝试使用的 xpath:
$url_pre = 'a[onclick*="'servletLinkJunkHere...'"]/preceding-sibling::img/@src';
关于我如何做到这一点的任何想法?我知道这是可能的,我只是不完全精通 xpath 查询。另外,有没有什么好的资源可以学习 xpath 的所有细节?谢谢!
编辑:所以这就是我所拥有的,但它似乎只返回一个空数组。
$url_email = "EditNotificationInfoServlet?cb=on&id=" . $id . "&sessionId=1";
$url_pre = "a[contains(@onclick,'" . $url_email . "')]/preceding-sibling::IMG/@SRC";
$final_text = $crawler->filterXPath($url_pre)->each(function($crawler, $i) {
return $crawler->text();
});