Python3 İle Siteden Yorum Çekme

Ö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 :grinning:
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


1 Beğeni

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.