Merhabalar,
http://www.aski.gov.tr/tr/Su_Kesintileri.aspx adresinden su kesintilerini çekmek istiyorum curl ve file_get_contents fonksiyonlarıyla çekmeyi denedim, denemediğim yöntem kalmadı yardımcı olabilir misiniz ?
Başka Siteden Veri Çekme İşlemi Yardım
5
●698
- 06-12-2017, 19:57:03Kimlik doğrulama veya yönetimden onay bekliyor.
- 06-12-2017, 20:02:03Aşağıdaki yöntemle denedim ve veri çekebildim ben. $result değişkeni üzerinden devam edebilirsiniz.yelhosting adlı üyeden alıntı: mesajı görüntüle
<?php header('Content-Type: text/html; charset=utf8_turkish_ci'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.aski.gov.tr/tr/Su_Kesintileri.aspx"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate'); $headers = array(); $headers[] = "Upgrade-Insecure-Requests: 1"; $headers[] = "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); echo $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } curl_close ($ch); ?> - 06-12-2017, 20:09:04HTTP ERROR 500 hatası veriyor malesef muhtemelen sunucudan veya eksik parametreden kaynaklanıyor. Ben biraz daha uğraşayım teşekkürler ilginize.
- 07-12-2017, 11:36:40Şu şekilde veriler çekilebiliyor.
Biraz düzenleme ve geliştirme ile dilediğiniz gibi verileri çekebilirsiniz.
include komutu ile de istediğiniz sayfaya bağlayabilirsiniz.
Array'i arttırarak diğer bilgileri çekebilirsiniz.
<?php function ara($bas, $son, $yazi) { @preg_match_all('/' . preg_quote($bas, '/') . '(.*?)'. preg_quote($son, '/').'/i', $yazi, $m); return @$m[1]; } $link = "http://www.aski.gov.tr/tr/Su_Kesintileri.aspx"; $icerik = file_get_contents($link); $bir = ara("<br />", "</td>", $icerik); { ?> <table class="icerikler_Tablo" cellpadding="0" cellspacing="0" border="1"> <tr> <td class="Su_kesintileri_baslik" colspan="4"> <br /> * Arıza giderilme saati ev veya işyerinizin konumuna ve arıza büyüklüğüne göre birkaç saat kadar farklılık gösterebilir. <br /> <br /> <br /> </td> </tr> <tr> <td class="Su_kesintileri_baslik"> ilçe</td> <td class="Su_kesintileri_baslik"> Arıza Zamanı</td> <td class="Su_kesintileri_baslik"> Tahmini Onarım Zamanı</td> <td class="Su_kesintileri_baslik" > Açıklama</td> </tr> <tr> <td style="width:15%" class="kesintileri_konu"><br /><?php echo $bir[0]?></td> <td style="width:14%" class="kesintileri_konu"><br /><?php echo $bir[1]?></td> <td style="width:14%" class="kesintileri_konu"><br /><?php echo $bir[2]?></td> <td style="width:35%" class="kesintileri_konu"><br /><?php echo $bir[3]?></td> </tr> <tr> <td style="border:0;" colspan="4"> <br /> <br /> <br /> <br /> <br /> </td> </tr> </table> <?php } ?> - 08-12-2017, 17:50:09
<?php header('Content-Type: text/html; charset=utf8_turkish_ci'); function siteConnect($site) { $ch = curl_init(); $hc = ""; curl_setopt($ch, CURLOPT_REFERER, ''); curl_setopt($ch, CURLOPT_URL, $site); curl_setopt($ch, CURLOPT_USERAGENT, $hc); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $site = curl_exec($ch); curl_close($ch); preg_match_all('@<tr>(.*?)</tr>@si',$site,$kesinti); //echo "<pre>"; print_r($kesinti); echo "</pre>"; echo $kesinti[0][3]; } $giris = siteConnect('http://www.aski.gov.tr/tr/Su_Kesintileri.aspx'); echo $giris; ?>Bu kodla çözmüştüm sorunu ilginize teşekkür ederim. İlerde lazım olan birisi olursa kullanabilir.