Başka bir Sitede ki Ürün Bilgilerini WordPress Sayfasına Çekme
Bu makalede, bir web sitesinden ürün bilgilerini çekerek WordPress sayfanızda yayınlamak için bir Python scripti kullanacağız. Bu işlemi adım adım açıklayacağız.
Gereksinimler
- Python 3.x (Python’un en son sürümünü buradan indirebilirsiniz)
requests
vebeautifulsoup4
kütüphaneleri
Adım 1: Python ve Gerekli Kütüphaneleri Kurma
Öncelikle, Python’u indirip kurun. Ardından, requests
ve beautifulsoup4
kütüphanelerini yüklemek için aşağıdaki komutları çalıştırın:
pip install requests
pip install beautifulsoup4
Adım 2: WordPress’te Uygulama Şifresi Oluşturma
WordPress’te uygulama şifresi oluşturmak için aşağıdaki adımları izleyin:
- WordPress admin panelinize gidin.
- Kullanıcılar > Profiliniz menüsüne tıklayın.
- “Uygulama Şifreleri” bölümüne gidin.
- Yeni bir uygulama şifresi oluşturun ve bir isim verin (örneğin,
minakaia
). - Oluşturulan şifreyi not alın.
Adım 3: Python Scriptini Hazırlama
Aşağıdaki Python scriptini urun_cekme.py
adıyla kaydedin. Bu script, Minakaia’dan ürün bilgilerini çekip WordPress sayfanızı güncelleyecektir.
import requests
from bs4 import BeautifulSoup
import base64
import json
# Minakaia'dan veri çekme
def get_products_from_minakaia():
url = "https://www.siteeeee.com/alt-giyim"
response = requests.get(url)
if response.status_code != 200:
print(f"Minakaia sayfasına erişilemedi. HTTP Durum Kodu: {response.status_code}")
return []
soup = BeautifulSoup(response.content, "html.parser")
urunler = soup.find_all("div", class_="productItem")
if not urunler:
print("Hiç ürün bulunamadı. HTML yapısı değişmiş olabilir.")
return []
product_list = []
for urun in urunler:
urun_basligi = urun.find("div", class_="productName").text.strip() if urun.find("div", class_="productName") else "Başlık Bulunamadı"
urun_fiyati = urun.find("div", class_="discountPrice").find("span").text.strip() if urun.find("div", class_="discountPrice") else "Fiyat Bulunamadı"
urun_resim = urun.find("img", class_="resimOrginal")["src"] if urun.find("img", class_="resimOrginal") else "Resim Bulunamadı"
product = {
"title": urun_basligi,
"price": urun_fiyati,
"image": urun_resim
}
product_list.append(product)
return product_list
# WordPress sayfasını güncelleme
def update_wordpress_page(products, page_id):
wp_url = f"https://arifakyuz.com/wp-json/wp/v2/pages/{page_id}"
username = "admin" # WordPress kullanıcı adınız
password = "SdEe f7xb KcU4 VwqT Mw3m 1gjA" # Oluşturduğunuz uygulama şifresi
token = base64.b64encode(f"{username}:{password}".encode()).decode("utf-8")
headers = {
"Authorization": f"Basic {token}",
"Content-Type": "application/json"
}
# Ürünlerin HTML içeriğini oluşturma
content = ""
for product in products:
content += f"<h2>{product['title']}</h2>"
content += f"<p>Fiyat: {product['price']}</p>"
content += f"<img src='{product['image']}' alt='{product['title']}'><hr>"
print(f"Güncellenen İçerik: {content}")
data = {
"content": content
}
wp_response = requests.post(wp_url, headers=headers, data=json.dumps(data))
if wp_response.status_code not in range(200, 300):
print(f"Sayfa güncellenirken bir hata oluştu: {wp_response.status_code}")
print(wp_response.text)
else:
print(f"Başarıyla güncellendi: {wp_response.json()}")
return wp_response.json()
# Ana fonksiyon
if __name__ == "__main__":
page_id = 4677 # "Ürün Çekme" sayfanızın ID'si
products = get_products_from_minakaia()
if not products:
print("siteee.com'dan ürün bilgileri alınamadı.")
else:
print(f"Çekilen Ürünler: {products}")
response = update_wordpress_page(products, page_id)
print(response)
Adım 4: Scripti Çalıştırma
- Scriptin bulunduğu dizine gidin:
cd <script_dizini>
Scripti çalıştırın:
python urun_cekme.py
Bu adımları takip ederek Minakaia’dan ürün bilgilerini çekip WordPress sayfanızda yayınlayabilirsiniz. Script çalıştırıldığında, ürün başlıkları ve fiyatları https://arifakyuz.com/urun-cekme/
sayfasında görünecektir.
Çiçek Desenli Siyah Şort Etek
Fiyat: ₺439,00
Çiçek Desenli Krem Şort Etek
Fiyat: ₺439,00
Hasır Kemerli Düğmeli Beyaz Etek
Fiyat: ₺599,00
Keten Pantalon
Fiyat: ₺979,00
Şortlu Keten Etek
Fiyat: ₺979,00
Beli Lastikli Bej Havuç Pantalon
Fiyat: ₺979,00
Bağlamalı Taş Keten Pantalon
Fiyat: ₺639,00
Siyah Tulum
Fiyat: ₺899,00
Beli Lastikli Pantalon
Fiyat: ₺819,00
Şehir Boy Füme Kot Şort
Fiyat: ₺499,00
Leopar Beli Lastikli Pantalon
Fiyat: ₺599,00
Buruşuk Görünümlü Bej Midi Etek
Fiyat: ₺579,00
Buruşuk Görünümlü Yeşil Midi Etek
Fiyat: ₺579,00
Buruşuk Görünümlü Pembe Midi Etek
Fiyat: ₺579,00
Buruşuk Görünümlü Mint Midi Etek
Fiyat: ₺579,00
Bağlamalı Yeşil Keten Pantalon
Fiyat: ₺639,00
Bağlamalı Keten Beyaz Pantalon
Fiyat: ₺639,00
Bej Çizgili Kuşak Detaylı Tulum
Fiyat: ₺1.099,00
Siyah Çizgili Kuşak Detaylı Tulum
Fiyat: ₺1.099,00
Buruşuk Görünümlü Beyaz Midi Etek
Fiyat: ₺579,00
Pembe Desenli Midi Kloş Etek
Fiyat: ₺799,00
Kahverengi Pileli Midi Kloş Etek
Fiyat: ₺579,00
Nar Çiçeği Desenli Midi Kloş Etek
Fiyat: ₺799,00
Mavi Jean Tulum
Fiyat: ₺659,00