Python BeautifulSoup kütüphanesini kullanarak, hedef bir web sitesinin HTML veya XML kodlarını ayrıştırarak ihtiyacınız olan verileri elde edebilirsiniz.
Senaryoya göre bir mail listesi yapıp otomatik olarak toplu mail göndermek istediğiniz bir hedef kitleniz olsun. Örneğin: Bir web sitesindeki firmaların mail adreslerini toplamak istediğinizi varsayalım. Hedeflediğiniz bir web sitesini seçip bu kütüphane ile tüm firmaların mail adreslerini toplayıp onlara reklam mailleri atabilirsiniz. Bunu yapmanıza tek engel ise teknokent sitesinin bunu yapmanız için daha önceden önlem almış olmasıdır.
Bildiğiniz üzere web siteleri içerdiği tüm bilgileri çeşitli HTML veya XML kodları içinde saklamaktadır. Amacımız bu kodları okumak ve bu kodların içinde sadece bilgileri temizleyip çıkarmaktır. Bunun için Python'da kodlamaya başlayalım:
1- Kütüphaneleri İndirme
#kütüphaneleri indirelim
import requests #web sitesinden istek istemek için
from bs4 import BeautifulSoup
import re #regex için
2- Web Adresini Belirleme
İkinci Adım olarak Web sitesinin adresini belirleyelim:
URL = "https://www.siteadi.com/sayfaadi"
page = requests.get(URL)
3- Html parser ile page Değişkenindeki İçeriği Ayrıştırma
Requests ile web sitemize istek gönderelim ve bağlanalım
bs = BeautifulSoup(page.content, "html.parser")
4- bs Değişkenimize Göz Atalım
print(bs)
Sadece İstediğimiz Kısımları Filtreleyelim
results = bs.findAll("div", {"class": "form-comp inp_05"})
Aldığımız Verileri Ekrana Basalım
print(results)
Veriyi regex ile Temizleyelim
results = str(results)
results = results.replace("','")
words = re.findall(r">\S+</a>",results)
list1=[]
for i in words:
i = i.replace(">","")
i = i.replace("</a","")
i = i.split(",")
if len(i)>1:
for x in range(len(i)):
list1.append(i[x])
else:
list1.append(i[0])
Temizlediğimiz Veriye Bakalım
print(list1)