我需要從html頁面讀取一些內容。 我測試過simple_html_dom
,但它根本不適用於我需要的東西。我在哪裏可以找到一個DOM解析器?
我需要的是這樣的(基於simple_html_dom pseaudo語法):
$html = file_get_contents($url);
$html_obj = parse_html($html);
$title = $html_obj->get('title');
$meta1 = $html_obj->get('meta[name=description]', 'innertext']; //text only
$meta2 = $html_obj->get('meta[name=keywords]', 'innertext']; // text only
$content = $html_obj->get('div[id=section_a]', outerText); //html code
我已經在很多方面進行測試simple_html_dom,只有設法得到什麼,我需要的部分。 它根本不是「簡單」。
我也測試過PHP DOMDocument::loadHTML
,但它遇到了處理內聯<script>
的問題。
有沒有任何PHP圖書館,使得它容易得到jQuery
內容?
更新
我的一個問題是一塊第三方的javascript中的附加機構:
<script language="javascript" type="text/javascript">
<!--
if (window.adgroupid == undefined) {
window.adgroupid = Math.round(Math.random()*100000);
}
document.write('<scr'+'ipt language="javascript1.1" type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|994|3159100|0|-1|size=980x150|ADTECH;loc=100;target=_blank;key=startside,kvinner, kvinnesak, bryllup, graviditet, mamma, kosmetikk, markedsplass, dagbok, feminisme;grp='+window.adgroupid+';misc='+new Date().getTime()+'"></scri'+'pt>');
//-->
</script>
即使我改變<scr'+'ipt
到<script
它給了我無效的JavaScript代碼。
服務器jquery的操作HTML端DOM庫通常使用XPath,而不是jQuery使用的僞css選擇。我相信這個選擇最終會變成'// meta [@ name =「description」]' – zzzzBov
您可以詳細說明'問題'嗎? –
@Digital Precision,看我更新的文本 – Steven