这里的第一次海报,做了大约几个小时的搜索和尝试但是卡住了......所以对我很轻松:)
包含此页面的页面
<li onclick="javascript:trackClick(14423, 'web'); document.location='http://www.mywebsite.com';">
<img class="listing-control" src="img/url-profile-listings.png" alt="Get Directions" width="51" height="51" style="padding:4px;">
<span id="web14423">Visit Website</span>
</li>
我正在尝试在li标记的document.location中获取网址http://www.mywebsite.com。
关键的唯一唯一且不变的事情是span标记中的“访问网站”文本。有没有办法找到它并从onclick事件转到parent li标签到document.location属性?
任何帮助都将非常感谢!!!
谢谢,
MrMo。
答案 0 :(得分:1)
当然,将其加载到SimpleHTMLDOM
对象中,然后只需将<li>
标记与其对齐即可。定位onclick=""
属性以获取其中的值。
免责声明:我不是任何正则表达式专家。
$html_string = <<<EOT
<li onclick="javascript:trackClick(14423, 'web'); document.location='http://www.mywebsite.com';">
<img class="listing-control" src="img/url-profile-listings.png" alt="Get Directions" width="51" height="51" style="padding:4px;">
<span id="web14423">Visit Website</span>
</li>
EOT;
$html = str_get_html($html_string);
// after loading the html with either str_get_html or file_get_html
foreach($html->find('li') as $list) {
$script = $list->onclick;
preg_match('/document.location\s*=\s*\'(.*?)\';/', $script, $match);
if(!empty($match)) {
$url = $match[1];
echo $url;
}
}