Öncelikle herkese merhaba. BTK Akademi üzerinden aldığım Python eğitim setinin sonlarına yaklaşmaktayım fakat şöyle bir sorunum var: Mesela Beautiful Soup kütüphanesinin syntaxını ve çalışma mantığını bir etiketi nasıl seçebileceğimi biliyorum fakat bir web sitesinden bir bilgi, veri çekeceğim zaman hangi etiketi seçmem gerektiğini bir türlü bulamıyorum, o etikete bir türlü ulaşamıyorum. Sonuç her zaman none. Basit sitelerden scraping yapabiliyorum fakat YouTube ve Hepsiburada gibi kodları biraz daha karmaşık sitelere gelince iş, işte o zaman sonuç her zaman none. Bana yardım edin lütfen. İnternetten bir veriyi çekmek için hangi etiketi seçmem gerektiğini nasıl anlayabilirim?
Örneğin YouTube anasayfasından video başlıklarını seçmek istiyorum diyelim ve şöyle bir kod yazdım(aşağıda). Burada id = content olan elemente ulaşamıyorum ya ben bu elemente ulaşmak için sırasıyla hangi elementleri seçmem gerektiğini nereden anlayabilirim bir yöntemi falan mı var bilmediğim?
Örneğin YouTube anasayfasından video başlıklarını seçmek istiyorum diyelim ve şöyle bir kod yazdım(aşağıda). Burada ID = content olan elemente ulaşamıyorum ya ben bu elemente ulaşmak için sırasıyla hangi elementleri seçmem gerektiğini nereden anlayabilirim bir yöntemi falan mı var bilmediğim?
Çok hakim değilim ancak bildiğim kadarıyla YouTube sayfa kaynağı çogunlukla JavaScript ve çok karmaşık. Bu yüzden html.parser işlevsiz kalıyor olabilir.
html.parser yerine 'lxml','html5lib','lxml-xml' kullanılabilir. Ama sonucun değişeceğini sanmıyorum. Alternatif olarak selenium kullanabilirsin.
Ek olarak Problem extracting Youtube search results
Çok hakim değilim ancak bildiğim kadarıyla YouTube sayfa kaynağı çogunlukla JavaScript ve çok karmaşık. Bu yüzden HTML. Parser işlevsiz kalıyor olabilir.
HTML. Parser yerine 'lxml','HTML5lib','lxml-XML' kullanılabilir. Ama sonucun değişeceğini sanmıyorum. Alternatif olarak selenium kullanabilirsin.
Ek olarak Problem extracting Youtube search results
Teşekkürler fakat ben genel olarak Hepsiburada'dan falan da bazı kodlara erişmek için örnek veriyorum ID = device-price-1 olan div i istiyorum ya ona direk ulaşmaya çalıştığımda none veriyor o etiketi seçerken mesela body > div > div diye giden bir sırayla dizilmiş sonuçta iç içe buna ulaşırken tek tek üstündeki tüm etiketleri mi seçeceğim tam anlatamıyorum kusura bakmayın nasıl anlatacağımı bilemiyorum.
Teşekkürler fakat ben genel olarak Hepsiburada'dan falan da bazı kodlara erişmek için örnek veriyorum ID = device-price-1 olan div i istiyorum ya ona direk ulaşmaya çalıştığımda none veriyor o etiketi seçerken mesela body > div > div diye giden bir sırayla dizilmiş sonuçta iç içe buna ulaşırken tek tek üstündeki tüm etiketleri mi seçeceğim tam anlatamıyorum kusura bakmayın nasıl anlatacağımı bilemiyorum.
import requests
from bs4 import BeautifulSoup as bs
r = requests.get('https://www.gaming.gen.tr/kategori/hazir-sistemler/')
soup = bs(r.content, 'html.parser')
products = soup.find_all("a",attrs={"class": "woocommerce-LoopProduct-link woocommerce-loop-product__link"})
for product in products:
print(product.h2.text)
print((str(product.find("span", attrs={"class": "price"}).text).split("₺")[1]))
print('--'*50)
Bu koda bir bak istersen sitedeki tüm hazır sistemleri listeledim. Div>div>div>div>main>div ayıklamadan ulaşabildim. Sonrasında ihtiyacım olan ismi, fiyatı, indirimi, önceki fiyatı vs. rahatça görebiliyorum.
import requests.
from bs4 import BeautifulSoup as bs.
r = requests.get('https://www.gaming.gen.tr/kategori/hazir-sistemler/')
soup = bs(r.content, 'html.parser')
products = soup.find_all("a",attrs={"class": "woocommerce-LoopProduct-link woocommerce-loop-product__link"})
for product in products:
print(product.h2.text)
print((str(product.find("span", attrs={"class": "price"}).text).split("₺")[1]))
print('--'*50)
Bu koda bir bak istersen sitedeki tüm hazır sistemleri listeledim. Sonrasında ihtiyacım olan ismi, fiyatı, indirimi, önceki fiyatı vs. rahatça ulaşabiliyorum.