*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
Web scraping, web sayfalarından otomatik olarak verileri çekme işlemidir. Çoğu insan bu verileri çeşitli sebeplerle kullanabilir, örneğin, pazaryeri rakiplerinin ürünlerini izlemede, işletmenizin web sitesine konuklardan bilgi toplamada, öğrencilerin araştırmalarında ve daha birçok alanda. Ancak, web scraping hukuki problemlerle ve etik konularla karşı karşıya kalabilir. Bu nedenle, web scraping işleminin yapılacağı web sitesindeki Teknik Şartlar ve Hizmet Koşulları bölümünün dikkatlice okunması gerekir.
Web scraping işlemi için birçok farklı araç kullanabilirsiniz ancak bu yazıda Beautiful Soup aracını kullanarak web scraping nasıl yapılır örneklerle anlatılacak.
Beautiful Soup’tan bahsetmek gerekirse, Python programlama dili için kullanılan bir kütüphanedir. HTML veya XML gibi belgeleri analiz etmek için kullanılan bir araçtır. Bu kütüphane sayesinde web sayfalarındaki farklı öğeleri (örneğin başlık, paragraf ve tabloların) bulunması ve bunların verilerinin alınması daha kolay hale gelir.
Örneğin, bir web sayfasından alan adı ve dinamik bir IP adresi toplama işleminin yapılması için aşağıdaki kod kullanılabilir:
``` python
from bs4 import BeautifulSoup
import requests
url = \"https://example.com\"
response = requests.get(url)
soup = BeautifulSoup(response.content, \"html.parser\")
print(soup.title.text)
```
Bu örnekte, `requests` kütüphanesi ile web sayfasını alıyoruz, ardından Beautiful Soup ile sayfadaki verileri analiz ediyoruz. Bu özel örnekte, kod web sayfasının başlığını alıyor.
Ayarlamalar (Konfigürasyon)
---------------------------
Yukarıdaki öğreticide, \"requests\" kütüphanesi kullanılarak web sayfası alınmıştır. Kodun düzgün çalışması için, bazı isteklerin yapılabilmesi için değişiklik yapılması gerekebilir.
1. User Agent (Kullanıcı Aracısı)
Web Scraping'in posta kutusuna “bot” olarak etiketlenmesini önlemek için aldığımız sayfaları istekte bulunurken “Kullanıcı Aracısı” adlı bir bilgi göndeririz. Kullanıcı ajanları, internet tarayıcılarını tanımlamak için kullanılır.
Kodun düzgün çalışması için, bazı siteler, botların sayfalarını almasına izin vermeyecek şekilde ayarlanmıştır. Bu ayarlamalar, site sahiplerinin sitelerine erişim konusundaki endişelerinden kaynaklanmaktadır.
Şimdi, siteye bir tarayıcı gibi erişmek için UserAgent değişkenine sahip olan alıcı barındıran “başlıklardaki” bir istek Yapmak gerekiyor. Bunu yapmak için aşağıdaki kodu kullanabiliriz:
```python
import requests
url = 'https://www.example.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
```
Burada, `headers` değişkeni, User-Agent bilgisini taşıyarak web sayfası isteği yapar.
2. Waits (Bekleme)
Web Scraping uygulamalarında bekleme işlemi bazen gerekli olabilir. Beklemek, web sitesinin yüklenmesine, özellikle yavaş bağlantılar ve ağ trafiği kullanırken yavaş döngülere neden olarak tüm sayfanın alınmasını sağlar.
Yakın zamanda başlatılan bir web sayfası, web sayfasını analiz ederken BeeautifulSoup’a hafif bir yük olabilir ve süre, web sayfalarının alınmasını sağlamak için beklememiz gerekebilir. Bu bekleyi sağlamak için `time.sleep()` fonksiyonunu kullanabiliriz. Bu fonksiyon, belirli sürede işlemin durmasını sağlar.
Örneğin, aşağıdaki kodda sayfanın alınmadan önce 10 saniye beklememiz gerektiğini belirttik:
```python
import requests
import time
from bs4 import BeautifulSoup
url = 'https://www.example.com'
waitTime = 10
response = requests.get(url)
time.sleep(waitTime)
soup = BeautifulSoup(response.content, 'html.parser')
```
Beautiful Soup ile web scraping örneği
Bir web sayfasını Beautiful Soup ile süsleyebileceğiniz bir örnek yapalım. Bu örnekte, Amazon’un “En Çok Satılanlar” sayfasındaki verileri çekmeniz gerekiyor.
```python
import requests
from bs4 import BeautifulSoup
url = \"https://www.amazon.com.tr/gp/bestsellers/books/ref=zg_bs_nav_0\"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, \"html.parser\")
book_list = []
books = soup.select(\".a-section.a-spacing-none.p13n-asin.h2\")
for book in books:
book_dict = {}
book_dict[\"İsim\"] = book.select(\"span.a-text-normal\")[0].text.strip()
book_dict[\"Yazar\"] = book.select(\"a.a-size-base.a-link-normal\")[0].text.strip()
book_dict[\"Fiyat\"] = book.select(\".a-price-whole\")[0].text.strip()
book_dict[\"Yıldız\"] = book.select(\".a-icon-alt\")[0].text.strip()
book_list.append(book_dict)
for book in book_list:
print(f'Kitap İsmi: {book[\"İsim\"]
Web scraping, web sayfalarından otomatik olarak verileri çekme işlemidir. Çoğu insan bu verileri çeşitli sebeplerle kullanabilir, örneğin, pazaryeri rakiplerinin ürünlerini izlemede, işletmenizin web sitesine konuklardan bilgi toplamada, öğrencilerin araştırmalarında ve daha birçok alanda. Ancak, web scraping hukuki problemlerle ve etik konularla karşı karşıya kalabilir. Bu nedenle, web scraping işleminin yapılacağı web sitesindeki Teknik Şartlar ve Hizmet Koşulları bölümünün dikkatlice okunması gerekir.
Web scraping işlemi için birçok farklı araç kullanabilirsiniz ancak bu yazıda Beautiful Soup aracını kullanarak web scraping nasıl yapılır örneklerle anlatılacak.
Beautiful Soup’tan bahsetmek gerekirse, Python programlama dili için kullanılan bir kütüphanedir. HTML veya XML gibi belgeleri analiz etmek için kullanılan bir araçtır. Bu kütüphane sayesinde web sayfalarındaki farklı öğeleri (örneğin başlık, paragraf ve tabloların) bulunması ve bunların verilerinin alınması daha kolay hale gelir.
Örneğin, bir web sayfasından alan adı ve dinamik bir IP adresi toplama işleminin yapılması için aşağıdaki kod kullanılabilir:
``` python
from bs4 import BeautifulSoup
import requests
url = \"https://example.com\"
response = requests.get(url)
soup = BeautifulSoup(response.content, \"html.parser\")
print(soup.title.text)
```
Bu örnekte, `requests` kütüphanesi ile web sayfasını alıyoruz, ardından Beautiful Soup ile sayfadaki verileri analiz ediyoruz. Bu özel örnekte, kod web sayfasının başlığını alıyor.
Ayarlamalar (Konfigürasyon)
---------------------------
Yukarıdaki öğreticide, \"requests\" kütüphanesi kullanılarak web sayfası alınmıştır. Kodun düzgün çalışması için, bazı isteklerin yapılabilmesi için değişiklik yapılması gerekebilir.
1. User Agent (Kullanıcı Aracısı)
Web Scraping'in posta kutusuna “bot” olarak etiketlenmesini önlemek için aldığımız sayfaları istekte bulunurken “Kullanıcı Aracısı” adlı bir bilgi göndeririz. Kullanıcı ajanları, internet tarayıcılarını tanımlamak için kullanılır.
Kodun düzgün çalışması için, bazı siteler, botların sayfalarını almasına izin vermeyecek şekilde ayarlanmıştır. Bu ayarlamalar, site sahiplerinin sitelerine erişim konusundaki endişelerinden kaynaklanmaktadır.
Şimdi, siteye bir tarayıcı gibi erişmek için UserAgent değişkenine sahip olan alıcı barındıran “başlıklardaki” bir istek Yapmak gerekiyor. Bunu yapmak için aşağıdaki kodu kullanabiliriz:
```python
import requests
url = 'https://www.example.com'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
```
Burada, `headers` değişkeni, User-Agent bilgisini taşıyarak web sayfası isteği yapar.
2. Waits (Bekleme)
Web Scraping uygulamalarında bekleme işlemi bazen gerekli olabilir. Beklemek, web sitesinin yüklenmesine, özellikle yavaş bağlantılar ve ağ trafiği kullanırken yavaş döngülere neden olarak tüm sayfanın alınmasını sağlar.
Yakın zamanda başlatılan bir web sayfası, web sayfasını analiz ederken BeeautifulSoup’a hafif bir yük olabilir ve süre, web sayfalarının alınmasını sağlamak için beklememiz gerekebilir. Bu bekleyi sağlamak için `time.sleep()` fonksiyonunu kullanabiliriz. Bu fonksiyon, belirli sürede işlemin durmasını sağlar.
Örneğin, aşağıdaki kodda sayfanın alınmadan önce 10 saniye beklememiz gerektiğini belirttik:
```python
import requests
import time
from bs4 import BeautifulSoup
url = 'https://www.example.com'
waitTime = 10
response = requests.get(url)
time.sleep(waitTime)
soup = BeautifulSoup(response.content, 'html.parser')
```
Beautiful Soup ile web scraping örneği
Bir web sayfasını Beautiful Soup ile süsleyebileceğiniz bir örnek yapalım. Bu örnekte, Amazon’un “En Çok Satılanlar” sayfasındaki verileri çekmeniz gerekiyor.
```python
import requests
from bs4 import BeautifulSoup
url = \"https://www.amazon.com.tr/gp/bestsellers/books/ref=zg_bs_nav_0\"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, \"html.parser\")
book_list = []
books = soup.select(\".a-section.a-spacing-none.p13n-asin.h2\")
for book in books:
book_dict = {}
book_dict[\"İsim\"] = book.select(\"span.a-text-normal\")[0].text.strip()
book_dict[\"Yazar\"] = book.select(\"a.a-size-base.a-link-normal\")[0].text.strip()
book_dict[\"Fiyat\"] = book.select(\".a-price-whole\")[0].text.strip()
book_dict[\"Yıldız\"] = book.select(\".a-icon-alt\")[0].text.strip()
book_list.append(book_dict)
for book in book_list:
print(f'Kitap İsmi: {book[\"İsim\"]
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle