从html页面php抓取数据

时间:2010-07-30 07:15:24

标签: php html

我需要从html页面中删除数据

<div style="margin-top: 0px; padding-right: 5px;" class="lftFlt1">

    <a href="" onclick="setList1(157204);return false;" class="contentSubHead" title="USA USA">USA USA</a>
    <div style="display: inline; margin-right: 10px;"><a href="" onclick="rate('157204');return false;"><img src="http://icdn.raaga.com/3_s.gif" title="RATING: 3.29" style="position: relative; left: 5px;" height="10" width="60" border="0"></a></div>
    </div>

我需要从onclick="setList1 ......

中删除“USA USA” 157204

5 个答案:

答案 0 :(得分:2)

您应该使用DOMDocumentXPath。通常不建议使用RegEx来解析HTML。

答案 1 :(得分:1)

使用正则表达式:

/setList1\(([0-9]+)\)[^>]+title="([^"]+)"/si

和preg_match()或preg_match_all()

答案 2 :(得分:1)

请转through my previous answers about how to handle HTML with DOM

XPath获取所有锚元素的文本内容:

//a/text()

XPath获取所有锚元素的title属性:

//a/@title

获取所有锚元素的onclick属性的XPath:

//a/@onclick

您必须使用一些字符串函数从onclick文本中提取数字。

答案 3 :(得分:0)

到目前为止,抓取的最好的lib是简单的html dom。基本上使用jquery选择器语法。

http://simplehtmldom.sourceforge.net/

您在此示例中获取数据的方式:

include("simple_html_dom.php");
$dom=str_get_html("page.html");
$text=$dom->find(".lftFlt1 a.contentSubHead",0)->plaintext;
//or 
$text=$dom->find(".lftFlt1 a.contentSubHead",0)->title;

答案 4 :(得分:0)

我是这样做的

$a=$coll->find('div[class=lftFlt1]');
$text=$element->find("a[class=cursor]",0)->onclick;