前の兄弟の属性にアクセスしようとしていますが、難しいことがわかりました。
つまり、基本的に、私がスクレイピングしようとしている Web ページはひどいものであり、アンカー タグは、href の代わりにくだらない onclick を使用しています。ばか、私は知っています。私は最初に 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();
});