Öncelikle merhabalar. Ben bir siteden örneğin hepsiburada’da sitesinden telefonları çekmek istiyorum. telefonları çektikten sonra ise yorumlarına bakarak analiz yaptıracağım lakin önce telefonları ve bilgilerini çekmeyi yapabilirsem diğer kısmı da soracağım zamanla
scrappy kullanarak denediğim de hata alıyorum veyahut boş csv dosyası çekiyorum nedenini çözemedim.
selenium ve beautifulsoup için hiçbir şey denemedim lakin onlar biraz daha karmaşık geliyor nedense.
teşekkürlerimi sunarım.
BeautifulSoup bir html-parser kütüphanesidir. Bu kütüphaneyi etkin kullanabilmek için öncelikle parse etmek istediğiniz HTML kodunu iyice analiz etmeli, hangi bilgileri nasıl alacağınıza karar vermelisiniz. Bir örnekle gösterelim. Diyelim ki elimizdeki HTML kodu şu şekilde.
<html>
<head>
<title>Test</title>
</head>
<body>
<p id = "numara">12345</p>
<p>456789</p>
</body>
</html>
Bu basit HTML kodunda bulunan ve id’si “numara” olan p tag’ini şu şekilde elde edebiliriz beautifulsoup ile
import bs4
kaynak = """
<html>
<head>
<title>Test</title>
</head>
<body>
<p id = "numara">12345</p>
<p>456789</p>
</body>
</html>
"""
parser = bs4.BeautifulSoup(kaynak,"html.parser")
liste = parser.select("#numara")
for tag in liste:
print(tag.text)
Burada “#numara” olarak belirtmemizin sebebi, id’lerin bu şekilde ifade edilmesidir. Eğer class olsaydı “.numara” olarak belirtecektik
Şu şekilde de, birden fazla tag’i seçebilirsiniz
import bs4
kaynak = """
<html>
<head>
<title>Test</title>
</head>
<body>
<p class = "numara">12345</p>
<p class = "numara">789456</p>
<p>456789</p>
</body>
</html>
"""
parser = bs4.BeautifulSoup(kaynak,"html.parser")
liste = parser.select(".numara")
# veya başka bir şekilde
# liste = parser.findAll("p",{"class":"numara"})
for tag in liste:
print(tag.text)
Daha fazla bilgi almak isterseniz, aşağıdaki sitelere göz atabilirsiniz
Scrapy kullanmanızı öneririm. Bu gibi işler için birçok otomatize aracı var. Ancak öncesinde yeterli Python bilgisine sahip olduğunuza emin olun. İlgili kodlarınızı ve varsa aldığınız hata mesajını paylaşırsanız daha iyi yardımcı olabiliriz.