Google / Yandex / Bing ve Servisleri
Google Görsellerden Otomatik Resim Çekme
Google Görsellerden Otomatik Resim Çekme
-
Sayın müridler,
Çok büyük dertteyim. Google görsellerden bir çok anahtar kelime için yüzlerce resim çekmem gerekiyor. Tabi bunu elle yapmak pek akıllıca değil. Google Custom Search API kullanayım dedim,
from apiclient.discovery import build service = build("customsearch", "v1", developerKey="xxxxxxxxxxxxxxxxxxxxxxx") res = service.cse().list( start = 1, q='butterfly', cx='ccccccccccccccccc:xxxxxxx', searchType='image', ).execute() if not 'items' in res: print 'No result !!\nres is: {}'.format(res) else: for item in res['items']: print('{}'.format(item['link']))
Bu kod gayet güzel çalışıyordu. Fakat Google amca günlük 100 query sınırı koymuş. Ben kodu çalışır hale getirene kadar bu sınırı doldurdum. Alternatifler aramaya koyuldum.
import urllib2 import simplejson url = ('https://ajax.googleapis.com/ajax/services/search/images?' + 'v=1.0&q=barack%20obama') request = urllib2.Request(url, None) response = urllib2.urlopen(request) # Process the JSON string. results = simplejson.load(response) # now have some fun with the results...
Bunu denediğimde ise bu API artık kullanılmıyor yanıtını aldım. Şimdi bana güzel bir çözüm lazım. Programlama dili fark etmez, ayrıyeten bir yazılım varsa anahtar kelime tabanlı çeken o da olur. Google ile sınırlı da değiliz. Yandex, Bing, Baidu da olur Aradığım şey anahtar kelimeyi vereyim o da bana resimleri çeksin. En kötü resimlerin linklerini alsam o da yeter.
uLtRaLoVeR tarafından 03/Şub/16 14:02 tarihinde düzenlenmiştir -
blogsbot.net
sitesindeki gibimi ?
-
UTHO bunu yazdı
blogsbot.net
sitesindeki gibimi ?
Aynen bu hocam aradığım. Ama burada belli sayıda sonuç veriyor ve sayfa numarasını değiştirsem de aynı resimler geliyor
-
uLtRaLoVeR bunu yazdıUTHO bunu yazdı
blogsbot.net
sitesindeki gibimi ?
Aynen bu hocam aradığım. Ama burada belli sayıda sonuç veriyor ve sayfa numarasını değiştirsem de aynı resimler geliyor
http://www.tahribat.com/Members/muhabir22
istersen iletişime geç, belki yardımcı olur .
-
https://www.googleapis.com/customsearch/v1?q=
kelime&gl=tr&searchType=image&rsz=large&start=1&key= apikey&cx= cxkodu:ykhnptap-vm veya
http://www.r10.net/ucretsiz-scriptler/1561122-google-image-search-script.html
-
mrkps bunu yazdı
https://www.googleapis.com/customsearch/v1?q=
kelime&gl=tr&searchType=image&rsz=large&start=1&key= apikey&cx= cxkodu:ykhnptap-vm veya
http://www.r10.net/ucretsiz-scriptler/1561122-google-image-search-script.html
r10.net teki script çok mantıklı görünüyor ama bir türlü çalıştıramadım.
Kodu şu hale getirdim.
<?php echo "Bir "; ?> <?php function img_bul ($txt, $limit) { $q = urlencode($txt); $url = "https://www.google.com.tr/search?hl=tr&tbm=isch&tbs=isz:m&q=".$q.""; $data = baglan($url); preg_match_all('|<a href="/imgres\?imgurl=(.*?)\&\;imgrefurl=|is', $data, $m1); $i = 1; $imajs = array(); foreach ($m1[1] as $img) { if ($i > $limit) break; $imajs[] = $img; $i++; } if (count($imajs) > 0) $imajlar = array_unique($imajs); return $imajlar; } ?> <?php function baglan ($url) { $accepts = array( 'accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'accept-language:tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4', 'cache-control:max-age=0', ); $ch = curl_init(); curl_setopt($ch , CURLOPT_HEADER , TRUE); curl_setopt($ch , CURLOPT_URL , $url); curl_setopt($ch , CURLOPT_RETURNTRANSFER , TRUE); curl_setopt($ch , CURLOPT_SSL_VERIFYPEER , FALSE); curl_setopt($ch , CURLOPT_HTTPHEADER , $accepts); curl_setopt($ch , CURLOPT_USERAGENT , 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.99 Safari/537.36'); $data = curl_exec($ch); curl_close($ch); return $data; } ?> <?php echo "iki "; $res = img_bul("araba",10); echo "uc"; ?>
deneme.php olarak kaydettim. http://localhost/deneme.php şeklinde çalıştırınca aldığım çıktı şu oluyor:
Bir iki
Konuyu bilen biri bir yardımcı olabilir mi?
-
araya gireceğim ama bu konuyu açmaya çalıştığımda aşağıdaki alert i alıyorum, ilgililerin bilgisine..
-
RockZs bunu yazdı
araya gireceğim ama bu konuyu açmaya çalıştığımda aşağıdaki alert i alıyorum, ilgililerin bilgisine..
İlk mesajdaki python kodları için veriyor o hatayı. Düz yazıya çevirdim vermez oldu. Bu arada curl olmadığı için patlıyormuş. Şimdi çalıştırdım. Yalnız şöyle bir problem var. 100 tane resim çekiyor sadece. Çünkü google görseller aşağı kaydırdıkça veriyor diğer resimleri. Buna bir çözüm bulunabilir mi? Alağı kaydırma işini simule edebilir miyiz?
-
import requests,re
query = 'cocuk'
url = "https://www.google.com.tr/search?site=&source=hp&biw=1294&bih=341&oq=at&tbm=isch&q="
r = requests.get(url+query)
urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',r.content)[31:]
urls = [i for i in urls if i.find('encrypted') == -1]
print urls100 den fazla resim için https://www.google.com.tr/search?q=cocuk&biw=1293&bih=341&tbm=isch&ijn=1&start=100 şu urldeki start parametresini 100er arttır. İlk yüz resim için koddaki urlyi kullanman gerekiyor.
-
iKlotho bunu yazdı
import requests,re
query = 'cocuk'
url = "https://www.google.com.tr/search?site=&source=hp&biw=1294&bih=341&oq=at&tbm=isch&q="
r = requests.get(url+query)
urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',r.content)[31:]
urls = [i for i in urls if i.find('encrypted') == -1]
print urls100 den fazla resim için https://www.google.com.tr/search?q=cocuk&biw=1293&bih=341&tbm=isch&ijn=1&start=100 şu urldeki start parametresini 100er arttır. İlk yüz resim için koddaki urlyi kullanman gerekiyor.
Teşekkürler bu çözüme ulaştırdı beni. Ama googledan 1000lerce resim çekme hayali olanlara kötü haber aradığım tüm keywordlerde 500-800 arası sonuç geldi.