Php'de bot yazmak üzerine ilk denemelerim. Kodların sonuna gelmişken takıldığım iki konu oldu. Bunlardan birisi
Veri almak istemediğim bir bölümü nasıl örtebilirim?
Örneğin;
<A title=" " href="..../kategori.asp?kategori=31" class="sol">• Mardin Fıkraları</A>
<A title=" " href="..../kategori.asp?kategori=29" class="sol">• Avcı Fıkraları</A>
<A href="..../kategori.asp?kategori=9999" title="bu bir denemedir" class="sol" >• Komik Yazılar </A>
ilk iki link normal fakat üçüncü linkte title var. veriyi aşağıdaki şu şekilde çekiyorum;
preg_match_all('#kategori=(.*?)" class="sol">&\#8226;(.*?)</A#si', $icerik, $sonuc, PREG_SET_ORDER);3. linkteki title araya farklı olarak eklendiği için bunu regexp kodları içerisine nasıl ekleyeceğimi bilmiyorum. yani bu bölümün gözükmemesini önemsenmemesini istiyorum.
preg_match_all('#kategori=(.*?)"([^>].*?)>\&\#8226;(.*?)</A#si', $icerik, $sonuc, PREG_SET_ORDER);
bir diğer konu ise aşağıdaki gibi boşluklarla dolu bir alandan nasıl veri çekeceğim;
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script> </td>
<td>Buradaki veriyi çeeekkbr>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">Üstte sadece "Buradaki veriyi çeeekk" yazan yeri çekmek istiyorum. Aşağıda ki gibi bir kod yazdım fakat arka arkaya pek çok sayfayı çektiğim ve "<>" sanırım gibi karakterleride aldığım için sadece ilk sayfa çıktı.
Yazdığım kod;
preg_match_all('#pagead2.googlesyndication.com/pagead/show_ads.js">(.*?)<table#si', $site, $data, PREG_SET_ORDER); preg_match_all('#pagead2.googlesyndication.com/pagead/show_ads.js">(.*?)<table#si', $site, $data, PREG_SET_ORDER);buradan dönen $data dizisindeki gerekli değişkene öncelikle strip_tags() ardından da trim uyguladınmı istediğin yer kalır sadece elinde.