Don Crawler ,获取 div onClick 的 Javascript 属性
Don Crawler , get a Javascript attribute of a div onClick
我想循环 div - my-node-div ,
并获取 LINK,它是 javascript onclick 属性,它在我的 DIV 中,我正在循环。
我有这个结构-
<div id="container">
<div class="my-node-div" onclick="window.location='https://www.website1.com'">
<h1>Title One</h1>
</div>
<div class="my-node-div" onclick="window.location='https://www.website2.com'">
<h1>Title Two</h1>
</div>
<div class="my-node-div" onclick="window.location='https://www.website3.com'">
<h1>Title Three</h1>
</div>
</container>
所以我会做类似的东西 -
$html = $client->request('GET', $url_of_website);
$crawler = new Crawler();
$crawler->filter('div#container > div.my-node-div')->each(
function (Crawler $node, $index) use ($refer) {
// GET THE TEXT
$H1 = $node->filter('h1')->text();
// HOW COULD i GET THE window.location= WEBSITE ?
$LINK = ?
});
}
我怎样才能得到我的 div 中的这个 javascript link?
要从节点获取属性,您将在 $node
.
上使用 extract
[1] 方法
$crawler = new Crawler($html);
$links = $crawler->filter('div#container > div.my-node-div')
->each(function(Crawler $node) {
return $node->extract(['onclick']);
});
现在 $links
将包含该节点 onclick
属性中的任何内容的数组。
array (
0 =>
array (
0 => 'window.location=\'https://www.website1.com\'',
),
1 =>
array (
0 => 'window.location=\'https://www.website2.com\'',
),
2 =>
array (
0 => 'window.location=\'https://www.website3.com\'',
),
)
然后你必须从那里解析出 link,也许可以尝试 Extract URLs from text in PHP 来获得一些想法。
我想循环 div - my-node-div , 并获取 LINK,它是 javascript onclick 属性,它在我的 DIV 中,我正在循环。
我有这个结构-
<div id="container">
<div class="my-node-div" onclick="window.location='https://www.website1.com'">
<h1>Title One</h1>
</div>
<div class="my-node-div" onclick="window.location='https://www.website2.com'">
<h1>Title Two</h1>
</div>
<div class="my-node-div" onclick="window.location='https://www.website3.com'">
<h1>Title Three</h1>
</div>
</container>
所以我会做类似的东西 -
$html = $client->request('GET', $url_of_website);
$crawler = new Crawler();
$crawler->filter('div#container > div.my-node-div')->each(
function (Crawler $node, $index) use ($refer) {
// GET THE TEXT
$H1 = $node->filter('h1')->text();
// HOW COULD i GET THE window.location= WEBSITE ?
$LINK = ?
});
}
我怎样才能得到我的 div 中的这个 javascript link?
要从节点获取属性,您将在 $node
.
extract
[1] 方法
$crawler = new Crawler($html);
$links = $crawler->filter('div#container > div.my-node-div')
->each(function(Crawler $node) {
return $node->extract(['onclick']);
});
现在 $links
将包含该节点 onclick
属性中的任何内容的数组。
array (
0 =>
array (
0 => 'window.location=\'https://www.website1.com\'',
),
1 =>
array (
0 => 'window.location=\'https://www.website2.com\'',
),
2 =>
array (
0 => 'window.location=\'https://www.website3.com\'',
),
)
然后你必须从那里解析出 link,也许可以尝试 Extract URLs from text in PHP 来获得一些想法。