-4

電話、電子メール、ウェブサイトなどのFacebookの公開ページから連絡先情報をスクレイピングしたい.

スクレイピングに SIMPLE_HTML_DOM パーサーを使用しています。

問題は、関数を使用しているときにecho $html = file_get_html($url);何も表示されないことです。

また、たとえばcurlを使用するecho $html=str_get_html($myUrl);と、ページの上部にいくつかのhttpパス情報テキストがあるhtmlが表示されますが、このページのソースを見ると<h4>contact info</h4>、いくつかのhtmlコメント付きコードを持つjsonコードが含まれています。

ここで、div を含む<h4>その他の情報をターゲットにすると、$Contact_info = $html->find('div #pagelet_contact_info')->plaintext; 何も返されず、通知が表示されます。

注意: D:\xampp\htdocs\scopon_deals\test.php の 18 行目で非オブジェクトのプロパティを取得しようとしています

私が呼び出したhtmlが返した特定のdivが見つからないため、ページ内のすべてのタグやhrefなどに対しても試しましたが、見つかりません。....

私のコードは次のとおりです!

include('connect.php'); include('simple_html_dom.php');

 $url = "http://www.facebook.com/ScooponTravel/info";
         $myUrl =curl_grab($url,"https://www.google.com", "", "false",  "null", "false");

          echo $html=str_get_html($myUrl);

        //echo $html = file_get_html($url);

        if(is_object($html)){

            echo "helloooo";echo '<br>';


            $Contact_info = $html->find('div #pagelet_contact_info')->plaintext;

                //print_r($deal_title);


            echo "Yesss";

        }


    ////// curl function
function curl_grab($url,$ref_url,$data,$login,$proxy,$proxystatus){

        if($login == 'true') {
           if($fp = fopen("cookie.txt", "w")){
            fclose($fp);
        }else{echo "+++++++++++++++++++++++++++++++++++++++++";}
            }
        // global $charam;

     $charam = curl_init();
     //curl_setopt($charam, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/cookie.txt");
      //curl_setopt($charam, CURLOPT_COOKIEJAR, "cookie.txt");
        //curl_setopt($charam, CURLOPT_COOKIEFILE, "cookie.txt");
        //curl_setopt($charam, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        //curl_setopt($charam, CURLOPT_TIMEOUT, 440);
        curl_setopt($charam, CURLOPT_RETURNTRANSFER, TRUE);
        if ($proxystatus == 'true') {
            curl_setopt($charam, CURLOPT_HTTPPROXYTUNNEL, TRUE);
            curl_setopt($charam, CURLOPT_PROXY, $proxy);
        }
        curl_setopt($charam, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($charam, CURLOPT_SSL_VERIFYPEER, 0);

        curl_setopt($charam, CURLOPT_URL, $url);
        curl_setopt($charam, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($charam, CURLOPT_REFERER, $ref_url);

        curl_setopt($charam, CURLOPT_HEADER, TRUE);
        curl_setopt($charam, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($charam, CURLOPT_FOLLOWLOCATION, TRUE);
     //   curl_setopt($charam, CURLOPT_POST, TRUE);
    // curl_setopt($charam, CURLOPT_POSTFIELDS, $data);

        //ob_start();
     $curl_result =  curl_exec ($charam);
     //curl_close ($charam);
     return $curl_result;
        //ob_end_clean();
        //curl_close ($charam);
        //unset($charam);

}

4

1 に答える 1

-1

Facebook Graph API を使用して、連絡先の詳細を取得できます。

<?php
$file=file_get_contents("https://graph.facebook.com/ScooponTravel");
$json=json_decode($file);
echo $json->website;

これはhttp://www.scoopon.com.au/travel を返します

于 2013-06-07T08:46:25.307 に答える