Python Bot İçin Hangi Modul
-
Merhaba arkadaşlar bu 2 gündür python a bakıyordum , gayet güzel bir dilmiş sevdim :)
İzlediğim derste python ile bot yapımında requests ve BeautifulSoup kullanıyordu , sanırım anlatan kişiden olsa gerek pek birşey anlamadım doğrusu.
Python da web siteden içerik çekmek için hangi modul / moduller i kullanmayı tavsiye edersiniz ? Ayrıca tavsiye ettiğiniz modul e göre ufak bir kod örneği vs de paylaşma şansınız varsa sevinirim.
Örnek olarak http://www.imdb.com/chart/top sayfasından film isimleri ve url lerini çekmek istedim fakat isimler türkçe değil ingilizce geldi o da yetmez gibi url leri alamadım :)
kullandığım kodlar bunlar :
import requests from bs4 import BeautifulSoup imdburl = "http://www.imdb.com/chart/top" r = requests.get(imdburl) # url nin html kodunu aldık soup = BeautifulSoup(r.content,"html.parser") gelen_veri = soup.find_all("td",{"class":"titleColumn"} , "a") # class ı chart full-width olan table al dedik for film in gelen_veri: filmverileri = film.find_all("a") filmadi = filmverileri[0].text filmurl = filmverileri[0].href print("filmin adı : {} || Film url : {}".format(filmadi,filmurl))
-
Scrapy
-
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3 headerini eklersen isimleri türkçe alabilirsin.
-
Caliber bunu yazdı
Scrapy
Windows işletim sisteminde PyCharm kullanıyorum ve python 3.5 yüklü. Şu lanet scrapy i kuramadım gitti. :S
2.7 de yükledim yine olmadı
Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at 'C:\Users\YuSuF\AppData\Local\Programs\Python\Python35-32\python.exe'. Sürekli böyle bir hata veriyor
-
windows'ta scrapy calismaz python3 kullaniosan.. ya python2'de yazcan ya da linux'te falan yazman lazim python3 istersen..
-
Ya şu pythonda noktali virgulu suslu parantezi ok isareti "->" gibi seyler olsa super olacak dil cok sade amk alisamadim :)
-
-
requests farz da BeautifulSoup yerine lxml tercih ediyorum ben. Gözle görülür şekilde hızlı.
-
requests + bs4 kullandım genelde.
requests'e şunu söyleyeyim. Eğer login işleri vs. varsa (yoksa da kullanabilirsin)
s = requests.Session()
s.post(....)
s.get(...)
gibi yaparak tek session açıp ondan get post edebilirsin. Daha gerçekci olur. :)
-
@Ash hocam uzun uğraşlar sonucu dediğiniz gibi kuramadım ; (
@YekteranBaymedir, hocam çok temiz bir kodlama olmuş teşekkür ederim. Elinde daha önce yazdığın ufak tefek kodlar varsa bakmak isterim ; video derslerinde anlatildigindan daha iyi :)
@Krypt hocam lxml yi araştıracağım bazı yabancı kaynaklar da (ne hikmetse istihza dışında türkçe adam akilki kaynak bulamadim) da lxml tavsiye ediliyordu. Kendi websayfasi dışında lxml hakkında bilgi veren tavsiye edeceğiniz kaynak var mı ?
@pSkpt , lxml modülünü daha önce kullandiniz mi hocam ona göre kıyaslama yaparsaniz tavsiyeniz ne olr