2012-01-01 72 views
0

問題是,我得到的內容的一些部分,但沒有得到用戶的評論。由Firebug我看到的內容,但當我檢查源代碼沒有內容的HTML標籤/沒有相同的HTML標籤。這裏是我的代碼:使用simple_html_dom&cURL,但沒有得到頁面的所有內容。我怎樣才能得到?

<?php 
    //Headers 
    include('simple_html_dom.php'); 

function getPage($page, $redirect = 0, $cookie_file = '') 
{   
    $ch = curl_init(); 


    $headers = array("Content-type: application/json"); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 

    if($redirect) 
    { 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  
    } 

    curl_setopt($ch, CURLOPT_URL, $page); 

    if($cookie_file != '') { 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); 
    } 

    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6'); 

    $return = curl_exec($ch); //Mozilla/4.0 (compatible;) 

    curl_close($ch); 

    return $return; 

}//EO Fn 

//Source 
$url = 'http://www.vitals.com/doctor/profile/1982660171/reviews/1982660171'; 


//Parsing ... 
$contents = getPage($url, 1, 'cookies.txt'); 

$html = str_get_html($contents); 
//Output 
echo $html->outertext; 
?> 

誰能幫我 - 我應該做的就是整個頁面,這樣我可以抓住的評論? enter code here

+2

我敢打賭,這些意見都使用Ajax增加。有沒有簡單的解決方法 - 再加上你可能[不應該首先抓住那個網站。](http://www.vitals.com/termsofuse) – 2012-01-01 17:01:33

回答

0

它們只是作爲JSON存儲在朝向頁面頂部的<script>塊中。用RegEx或Simple HTML DOM解析出來,並通過json_decode運行它。

var json = {"provider":{"id":"1982660171","display_name":"Stephen R Guy, MD","last_name":"Guy","first_name":"Stephen","middle_name":"Russell","master_name":"Stephen_Guy","degree_types":"MD","familiar_name":"Stephen","years_experience":"27","birth_year":"1956","birth_month":"5","birth_day":"23","gender":"M","is_limited":"false","url_deep":"http:\/\/www.vitals.com\/doctor\/profile\/1982660171\/Stephen_Guy","url_public":"http:\/\/www.vitals.com\/doctors\/Dr_Stephen_Guy.html","status_code":"A","client_ids":"1","quality_indicator_set":[{"type":"quality-indicator\/consumer-feedback","count":"2","suboverall_set":[{"name_short":"Promptness","overall":"3"},{"name_short":"Courteous Staff","overall":"4"},{"name_short":"Bedside Manner","overall":"4"},{"name_short":"Spends Time with Me","overall":"4"},{"name_short":"Follow Up","overall":"4"}],"name":"Consumer Reviews","overall":"4.0","measure_set":[{"feedback_response_id":"1756185","input_source_ids":"{0}","date":"1301544000","value":"4","scale":{"best":"1","worst":"4"},"review":{"type":"review\/consumer","comment":"I will never birth with another dr. Granted that's not saying much as I don't like dr's but I actually find him as valuable as the midwives who I adore. I liked Horlacher but when Kitty left I followed the midwives and then followed again....Dr. Guy is GREAT. I honestly don't know who I'd rather support me at my birth; Margie and Lisa or Dr. Guy. ....I wonder if I can just get all of them.Guy's great. Know what you want. Tell him. Be strong and he'll support you.I give him 10 stars. Oh...my baby's 3 years old now. He's GREAT! ","date":"1301544000"},"sub_measure":[{"name":"Waiting time during a visit","name_short":"Promptness","value":"3","scale":{"best":"4","worst":"1"}},{"name":"Courtesy and professionalism of office staff ","name_short":"Courteous Staff","value":"4","scale":{"best":"4","worst":"1"}},{"name":"Bedside manner (caring)","name_short":"Bedside Manner","value":"4","scale":{"best":"4","worst":"1"}},{"name":"Spending enough time with me","name_short":"Spends Time with Me","value":"4","scale":{"best":"4","worst":"1"}},{"name":"Following up as needed after my visit","name_short":"Follow Up","value":"4","scale":{"best":"4","worst":"1"}}]},{"feedback_response_id":"420734","input_source_ids":"{76}","link":"http:\/\/local.yahoo.com\/info-15826842-guy-stephen-r-md-university-women-s-health-center-dayton","date":"1142398800","value":"4","scale":{"best":"1","worst":"4"},"review":{"type":"review\/consumer","comment":"Excellent Doctor: I really like going to this office. They are truely down to earth people and talk my \"non-medical\" language. I have been using thier office since 1997 and they have seen me through 2 premature pregnancies!","date":"1142398800"}}],"wait_time":"50"}]}}; 

但同樣,請確保您有權限做到這一點...

+0

我只是在學習刮刮 - 在這個也很新領域。簡單的網頁,我可以。您能否給我寫一些代碼,以便如何通過簡單的HTML DOM或RegEx解析此「var json = {...」。 – user1125230 2012-01-01 17:15:58