-1

前の兄弟の属性にアクセスしようとしていますが、難しいことがわかりました。

つまり、基本的に、私がスクレイピングしようとしている 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();
});
4

1 に答える 1

2

次のxpathを使用する必要があると思います:

a[contains(@onclick,'servletLinkJunkHere...')]/preceding-sibling::IMG/@SRC
于 2015-04-29T02:28:03.350 に答える