Dosyalardan Veritabanı Çıkarma Yöntemi Arıyorum
-
HolyOne bunu yazdı
Hocalar bişeye ihtiyacım var. bunun için bir algoritma bilen yada önceden kafa yoran varsa beni ağır kasıştan kurtarır.
Bilirsiniz bir siteden data çekmek için önce tüm sayfaları alır sonra onu database e dizen kod yada script yazarız.
Şimdi örneğin bir sitenin bütün sayfalarını indirip 1.htm 2.htm 3.htm diye bir klasörde topladık
dosyaların içerikleri sırasıyla şunlar
üye: hasanisim:hasan
soyad:husein
yaş: 30
üye:osmanisim:osman
soyad:remzi
yaş: 32
üye:huseinisim:husein
soyad:rıza
yaş: 50
üye:aliisim:ali
soyad:haydar
yaş: 30Almak istediğim çıktı
üye:%field1%isim:%field2%
soyad:%field3%
yaş:%field4%
yani 2 dosyayı karşılaştırıp farkların yerlerini bulmayı biliyorum fakat 100 dosyada aynısını yapıp bu işi template e nasıl dökerim.Webden çektiklerimi html değil template+database olarak toplamak benim amacım.
Aytek anladigim kadariyla (atiyorum) bir sitenin uyelerinin detaylarini html olarak indiriyorsun.
Mesela www.bilmemene.com/uye_deya.php?id=1,2,3,4....
Sen bunlari bir kalsora kaydettin. diyelim
Senin asil istedigin bunlari tarayip sayfalarda uyenin ad,soyad,yas,e-mail gibi verilerinin hangi alanlarda oldugunu bulmak mi ?
Bu mudur ? Yani degisen alanlari bulmak istiyorsun.
dhmm tarafından 19/Ağu/13 13:45 tarihinde düzenlenmiştir -
Üstad istediğin algoritma ciddi anlamda zor bir şey ama yapılamaz değil tabiki.
Aklıma gelen ilk işlem şu şekilde ; Ki bu bile yorucu bir algoritma olacaktır.ilk olarak 1.html indirdin diyelim bunda problem yok bu bizim referans dosyamız olacak macburen.
Daha sora bunu < > işaretleri parçalayıp hepsini arraya almak zorundayız bu array hiç kaybolmayacak ve referans array olacak.
2.sayfaya girdiğinde ise tekrardan boşluk ile arraya a alacak, yada < > bu ifadeler arasını.
in_Array gibi bir komut ile varmı yokmu bakacak varsa bunun yerine random 12 haneli bir sayı atacak ve bunuda array a alacak... (Bunlar her sitede olanlar olmuş olacak)
Daha sonra kalanlar ise sürekli değişkenler olacak mecburen.. Burda ise mecburen <p></p> aralarındaki yazılar olmuş olacak. Ama her site bölede yapmaz. Bunun içinde o siteye özgü değişkeni belirlemen gerekecek.
Sanırım baya karıştı anlatırken karışıyor oturup kodlamaya başlamak lazım yavaş yavaş kodlarken daha rahat oluyor sanırım.
Böyle bir şey yapabilirsen her halde botçular için devrim olur amk :)
-
SnipeTR bunu yazdı
Üstad istediğin algoritma ciddi anlamda zor bir şey ama yapılamaz değil tabiki.
Aklıma gelen ilk işlem şu şekilde ; Ki bu bile yorucu bir algoritma olacaktır.ilk olarak 1.html indirdin diyelim bunda problem yok bu bizim referans dosyamız olacak macburen.
Daha sora bunu < > işaretleri parçalayıp hepsini arraya almak zorundayız bu array hiç kaybolmayacak ve referans array olacak.
2.sayfaya girdiğinde ise tekrardan boşluk ile arraya a alacak, yada < > bu ifadeler arasını.
in_Array gibi bir komut ile varmı yokmu bakacak varsa bunun yerine random 12 haneli bir sayı atacak ve bunuda array a alacak... (Bunlar her sitede olanlar olmuş olacak)
Daha sonra kalanlar ise sürekli değişkenler olacak mecburen.. Burda ise mecburen
aralarındaki yazılar olmuş olacak. Ama her site bölede yapmaz. Bunun içinde o siteye özgü değişkeni belirlemen gerekecek.
Sanırım baya karıştı anlatırken karışıyor oturup kodlamaya başlamak lazım yavaş yavaş kodlarken daha rahat oluyor sanırım.
Böyle bir şey yapabilirsen her halde botçular için devrim olur amk :)
bütün <> arasını arraya alacaksın aşağıdaki kodda nasıl çalışcak bot?
<p>Adı: <b>Manglerman</b></p>
hem <p> arasını değişken olarak alacak hem <b> arasını değişken olarak alıcak daha parentlerinde ne kadar div table varsa hepsinin içeriği değiştiği için hepsini değişken olarak almış olacak :)
sakat iş yani hocam. bende bakıyorum bir taraftan.
onedio.com haberi ekleme ekranında linki yapıştırınca sitedeki haberi direk çekebilyor orada da bir algoritma var ama burdaki hepten ayrıntıya iniyor :)
manglerman hem p hem b içinde ? dolayısıyla bu referans aldığın sayfada bile problem olmuş olacak.
-
yamulmuyorsam şöyle olabilir,
siteyi okuduktan sonra basit bir html düşün hocam, bunları tag tag oku, örneğin html tagını geç head tagı elde. sonra ikinci url yi okut yine head tagını al içindekini karşılaştır aynıysa bunu al sabit bir yere yaz. sonra body altındaki ilk tagı al örn: <div class="asd">ad</div> bunun içeriğini ikinci sayfayla karşılaştır aynıysa sabit belirlediğin yere ekle. devam et aynı şekilde farklı olan tag içeriklerininde içine belirleyici yerleştirip sabite ekle : örn <div class="content">[DEGISKEN1]</div> . gibi hocam, umarım anlatabilmişimdir. -
-
onedio da büyük ihtimalle çekilen url de
<body> tagının arasında <p></p> arasını çekiyordur ve html tagları sildiriyordur. Yada daha önce tanımlanan bir sitedir.
bir çok sitede bende botu böyle yapıyorum. Adamlar tasarımı değiştirseler bile p tagı kullandıkları için problem çıkmıyordu.
-----------------------
Yada şöyle bir mantık geldi aklıma
Boşlukara göre parçalacaksın :
Array[1] = "<a";
Array[2] = 'href="http://tahribat.com"';
array[3] = 'title="tarhibat">';
........
......
....
..
.
Diye incek bu referans array olacak daha sonra bir sonraki sayfa alındığında
ereg replace ile /n leri kaybedeceksin ve
for döngüsü ile
array[1] varmı varsa devam bu değişken değil
array[1].array[2] varmı varsa devam bu değil iye devame deceksin.Bla bla mantık aslında böyle olur ama dediğim gibi kodlama yaparken denye yanıla test ede ede gitmek en mantıklısı.
Yada daha mantıklı bir fikir gelmiyor.
-
<obdy></body> taglarini icinde >< arasinda her ne degisiyorsa degisken olarak gosterecek.
