• 13-09-2012, 15:45:04
    #1
    merhaba arkadaşlar

    http://www.mevzuat.gov.tr/Kanunlar.aspx adresinde arama yapmak istiyorum curl ile ama ne denediysem olmadı. İnternette birçok döküman var ancak armayı beceremedim. anasayfada Session oluşturarak kanunlar.aspx sayfasına viewstateyi ve diğer gerekli değişkenleri alıp post etmeme rağmen bir sonuç alamadım. Bunu açıklayan gerçek bir döküman bilen veya boş arama ile satırdaki isim başlıklarını görebileceğim bir kod betiği bilen var mı?

    <?php
    $url ="http://www.mevzuat.gov.tr/Kanunlar.aspx";
    $reffer ="http://www.mevzuat.gov.tr";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_AUTOREFERER, 0);
    curl_setopt($curl, CURLOPT_REFERER, $reffer);
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file_path);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);
    $datatopost = array (
    "__VIEWSTATE" => $viewstate,
    "__EVENTVALIDATION" => $eventvalidation,
    "__PREVIOUSPAGE"=> $per,
    "ctl00$ContentPlaceHolder1$CheckBoxTamCumle"=>"a",
    "ctl00$ContentPlaceHolder1$DDLAranacakYer"=>"0",
    "ctl00$ContentPlaceHolder1$ButtonAra"=>""
    );
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POSTFIELDS,  $datatopost);
    $data = curl_exec ($curl);
    echo $data;
    
    ?>
    kullandığım kod sayfayı arama yapılmamış boş bir şekilde gömsteriyor ben "a" geçen konu başlıklarının listesini görmek istiyorum kolay gelsin.
  • 13-09-2012, 15:49:16
    #2
    Üyeliği durduruldu
    Zahmetli iş.
  • 13-09-2012, 18:37:26
    #3
    http://www.mishainthecloud.com/2009/...cation-in.html
    http://elanmarikit.blogspot.com/2011...-php-curl.html

    birde içinde $ isareti gecen stringleri tek tırnağa almanda yarar var
  • 13-09-2012, 19:22:22
    #4
    <?php
        function curl($url, $post = false)
        {
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            if($post) curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
            $sonuc = curl_exec($curl);
            return $sonuc;
        }
        $url = curl('http://www.mevzuat.gov.tr/Kanunlar.aspx');
        preg_match('#id="__VIEWSTATE" value="(.*?)"#si', $url, $viewstate);
        preg_match('#id="__EVENTVALIDATION" value="(.*?)"#si', $url, $validation);
        $aranacak = 'a';
        echo curl('http://www.mevzuat.gov.tr/Kanunlar.aspx', '__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE='.urlencode($viewstate[1]).'&__EVENTVALIDATION='.urlencode($validation[1]).'&ctl00%24ContentPlaceHolder1%24TBAranacakIfade='.$aranacak.'&ctl00%24ContentPlaceHolder1%24DDLAranacakYer=0&ctl00%24ContentPlaceHolder1%24TBKanunNumarasi=&ctl00%24ContentPlaceHolder1%24DDLNitelik=&ctl00%24ContentPlaceHolder1%24TBTarih1=&ctl00%24ContentPlaceHolder1%24TBTarih2=&ctl00%24ContentPlaceHolder1%24ButtonAra=Ara');
  • 14-09-2012, 00:12:05
    #5
    Çok teşekkür ederim. Çok işime yaradı.