Merhaba,
Bir marka verisi oluşturmak istiyorum ve markaların bulunduğu bir web adresi de mevcut. Bu adresten verileri tek tek almak yerine bir php kod yardımıyla hepsini text dosyasına veya tarayıcıya yazdırmak istiyorum.
Veri çekilebilecek Örnek site
Bu sitedeki firma isimlerini tek tek nasıl yazdırabilirim? Teşekkürler.
Farklı bir siteden veri çekmek?
9
●329
- 18-09-2018, 15:48:59Mantık için yardımcı olayım öncelikle son sayfanın numarasını bul. Bunu da regex ile yapabilirsin
<span class="page-text"> Toplam <strong>139</strong> sayfa içerisinde <strong>1</strong>. sayfayı görmektesiniz. </span>Buradan sayfa sayısını aldıktan sonra for döngüsü ile sırasıyla sayfaları çekeceksin ve her sayfayı parçalayacaksın. Zaten bir sayfayı çekebiliyorum dediğin için onun detayına girmeyeceğim.Bir örnek vereyim daha iyi anlarsın.
$toplamsayfasayisi=139; //bunu ister elinle gir istersen de sayfadan regex ile çek. for($i=1;$i<=$toplamsayfasayisi;$i++){ $siteadresi="http://www.sikayet.com/firmalar/".$i; yapilacakIslem($siteadresi); } - 18-09-2018, 15:49:59Bundan sonrasını halldersiniz heralde.
Veri tabanına veya txt olarak veriyi kayıt ederbilirsiniz.
<?php $sayfa = $_GET['sayfa']; $sonraisayfa = $sayfa +1; $site = file_get_contents('http://www.sikayet.com/firmalar/'.$sayfa); preg_match_all('@title="(.*?)"> <img src="(.*?)" width="(.*?)" height="(.*?)">@si',$site,$baslik_al); for ( $i = 0; $i <= 49; $i++ ) { echo "<li>"; echo($baslik_al[1][$i]); echo "</li>"; } ?> <meta http-equiv="refresh" content="5;URL=dene.php?sayfa=<?=$sonraisayfa?>">Veri tabanına işlerken 5 saniye az gelirse 10 yapın. - 18-09-2018, 15:58:38Scorpion2763 adlı üyeden alıntı: mesajı görüntüle
Çok teşekkür ederim. - 18-09-2018, 16:05:15
<?php $taranacak_sayfa_sayisi = 130; $ana_sayfa = "http://www.sikayet.com/firmalar/"; for($o = 1; $o < $taranacak_sayfa_sayisi; $o++) { $sayfa = file_get_contents($ana_sayfa.$o); preg_match('@<ul class="list-six">(.*?)</ul>@si',$sayfa,$ul_li); preg_match_all('@<li>(.*?)</li>@si',$ul_li[1],$li); foreach ($li[1] as $key => $value) { preg_match('@title="(.*?)"@si',$value,$adi); $firma_adi[] = $adi[1]; } } print_r ($firma_adi);// Çıktı hepsinin tek seferde isimleri alabilirsin ,
[0] => Aviva Mobilya
[1] => Cihan Elektronik
[2] => Desen Halı
[3] => Dresscholic.com
[4] => Eti Gıda
[5] => Gardenya Danışmanlık
................................................
[6449] => Uggsbootsturkey - 19-09-2018, 17:20:52Aşağıdaki hatayı alıyorum nedir acaba sıkıntısı?
Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\veri.php on line 9
OnurTasci adlı üyeden alıntı: mesajı görüntüle