Tedarikçi kataloğu parser'ıGeliştirme ve Özelleştirme

Bir tedarikçinin açık kataloğunu, fotoğraf bağlantılarıyla mağazanız için bir içe aktarma dosyasına dönüştüren Python parser'ı

Genellikle 15 dakika içinde hazırRevizyonlar dahilKalite kontrolü
Paketler
Ödeme korumasıAyrıntılar
  • Paket kapsamındaki revizyonlar ücretsizdir.
  • Teslimattan sonraki 3 gün içinde yanıt vermezseniz iş otomatik olarak onaylanır.

Para, ödeme yaptığınızda bloke edilir ve yalnızca işi onayladığınızda aktarılır.

Bir tedarikçinin açık kataloğunu, fotoğraf bağlantılarıyla mağazanız için bir içe aktarma dosyasına dönüştüren Python parser'ı

Örnek sonuç

Standart paket için örnek

Parser of a garden tools supplier's catalog into Excel

What the result looks like

ArticleNamePriceIn stockWeightPhoto
GT-1042Pruning shears, 20 mm18.90Yes0.24 kg…/gt-1042.jpg
GT-1187Folding saw, 210 mm24.50Yes0.31 kg…/gt-1187.jpg
GT-2210Hedge shears, wavy blade39.00No1.10 kg…/gt-2210.jpg
GT-3305Hand trowel, stainless9.80Yes0.18 kg…/gt-3305.jpg
GT-4120Garden hose 25 m, 1/2"42.00Yes2.90 kg…/gt-4120.jpg

The file in the example has 1,236 products from 52 list pages.

A part of the code

def product_links(list_url: str) -> Iterator[str]:
    """Product page links from every page of the list, following 'Next'."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """One open page, at a polite pace: a pause between requests and a few tries on errors."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s answered %s, try %d of 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} did not open after 3 tries")

Files: a ZIP archive with scraper.py, settings.ini (the start page, the pause between requests, the file name), requirements.txt and a README on installing and running it. It reads only open pages, one every 2 seconds, and checks the site's robots.txt first. The client runs it on their own computer.

Client: an online garden shop that resells a supplier's tools; the supplier has an open catalog on its website but no price list file. Task: go through the catalog's list pages, open every product page and save the article number, name, price, stock, weight and main photo link to Excel, to compare prices once a week.

Müşteri ve tüm ayrıntılar kurgusaldır.

Bu hizmet hakkında

Bir tedarikçi ürün yelpazesini açık bir sitede gösterip dosya göndermiyorsa bu parser kataloğu mağazanızın içe aktarabileceği bir tabloya kopyalar: ad, kod, fiyat, açıklama, özellikler, kategori ve fotoğraf bağlantıları; fotoğrafları da bir klasöre kaydeder. Tedarikçinin sitesini, bir kategori ve bir ürün sayfası bağlantısını, tarayıcınızdan kaydedilmiş bir ya da iki sayfayı ve mağazanızın içe aktarma şablonunu, örneğin bir Shopify ya da WooCommerce CSV'sini gönderin; sütunlar ona göre düzenlenir. Bir ayar dosyası ve README ile Python kodu alırsınız ve onu bilgisayarınızda çalıştırırsınız. Yalnızca tedarikçinin kullanmanıza izin verdiği fotoğrafları ve metinleri kullanın. Açık sayfaları siteyi yormayan bir hızda okur; asla oturum açmaz, CAPTCHA'ları ya da korumaları aşmaz, kişisel veri toplamaz. Sitenin koşullarının buna izin verip vermediğine siz karar verirsiniz; sitenin düzeni sonradan değişirse güncelleme gerekir.

Neler dahil

  • Neler alırsınızPython kodunu, bir ayar dosyasını ve adım adım talimatlar içeren bir README dosyasını barındıran bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
  • İçe aktarmanız için sütunlarMağazanızın içe aktarma dosyasındaki sırayla ve adlarla
  • Yüklemeye hazır fotoğraflarBir sütunda fotoğraf bağlantıları ve ürün koduna göre adlandırılmış dosyalar
  • Fiyatlar göründüğü gibiTedarikçinin fiyatı; kâr payınızı tabloda siz eklersiniz
  • Nazik hızSayfalar arasında, ayarlardan belirlenen bir bekleme süresi
  • Sade bir kılavuzNeyin kurulacağı ve nasıl çalıştırılacağı, adım adım

Nasıl çalışır

  1. 1
    KatalogTedarikçinin sayfalarını ve içe aktarma şablonunuzu verirsiniz
  2. 2
    ParserKodu ve çalıştırma kılavuzunu yazarız
  3. 3
    Deneme içe aktarmasıÇalıştırır ve ilk satırları mağazanıza aktarırsınız
  4. 4
    DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz

Sizden neler gerekiyor

Tedarikçinin sitesi: bir kategori ve bir ürün sayfası bağlantısı ve yaklaşık kaç ürün olduğu. Sütunların eşleşmesi için mağazanızın içe aktarma şablonu ya da birkaç ürününüzün örnek dışa aktarımı. Ad, kod, fiyat, açıklama, özellikler, kategori, fotoğraflar gibi ihtiyacınız olan alanlar. Tarayıcınızdan kaydedilmiş (Dosya > Sayfayı farklı kaydet) bir ya da iki tedarikçi sayfası. Fotoğraf dosyalarının nasıl adlandırılacağı. Ve tedarikçinin fotoğraflarını ve metinlerini kullanmanıza izin verdiğine dair onayınız.

Size soracaklarımız:

  • Hangi tedarikçi sitesi ve sayfalar?
  • Mağazanız ve içe aktarma dosyası
  • Yaklaşık kaç ürün?
  • Fotoğraflar

Paketleri karşılaştırın

PaketlerTemelÜrün sayfalarından tabloya$22StandartBütün bir katalog bölümü$43PremiumBirkaç tedarikçi ya da bölüm$76
Teslim süresi1 gün2 gün3 gün
Revizyonlar123
Siteler11en fazla 3
Sayfa türleri12 (kategori ve ürün)en fazla 3
Alanlaren fazla 10en fazla 25her birinde en fazla 25
Bir listenin sayfalarında gezinirHayırEvetEvet
Sonuç dosyasıCSVExcel ya da CSVExcel, CSV ya da JSON
Tekrarlar temizlenir, kaldığı yerden devam ederHayırHayırEvet
Fotoğraflarbağlantılar bir sütunda, dosyalar bir klasördebağlantılar bir sütunda, dosyalar bir klasördebağlantılar bir sütunda, dosyalar bir klasörde
Sipariş ver TemelSipariş ver StandartSipariş ver Premium

Ödeme koruması

Sipariş verirken ödersiniz, ancak para yalnızca onaylanan iş için aktarılır.

  • Sabit fiyatPaket fiyatı, ödeme yaptıktan sonra değişmez.
  • Para bloke edilirÖdeme yaptığınızda tutar yalnızca bloke edilir. İşi onayladığınızda hizmete aktarılır.
  • Teslimattan önce kontrolHer sonuç size ulaşmadan önce kalite kontrolünden geçer ve onaylamadan önce sipariş sayfasında görürsünüz.
  • Ücretsiz revizyonlarBrifiniz kapsamında, paketin izin verdiği sayıda değişiklik isteyin.
  • 3 gün sonra onayTeslimattan sonraki 3 gün içinde işi onaylamaz veya değişiklik istemezseniz iş otomatik olarak onaylanır. Teslimattan sonra sipariş sohbetine yazarsanız sipariş bekletilir; yanıt verdikten sonra 3 günlük süreyi yeniden başlatabiliriz ve bunu sohbette bildiririz.
  • Yeniden yapım veya tam iadeSonuç brifinize uymuyorsa ve revizyonlar sorunu çözmediyse ya da iş teslim süresinin iki katından uzun sürerse sipariş sohbetine yazın: işi yeniden yaparız veya ödemenin tamamını iade ederiz.
Nasıl çalışır →

Sorular ve yanıtlar

Dosya mağazama hemen aktarılır mı?

Sütunlar gönderdiğiniz şablona göre düzenlenir, bu yüzden çoğu durumda evet. Dosyayı mağazanızın içinde değil, şablonunuza göre kontrol ederiz; bu yüzden her şeyi yüklemeden önce ilk satırlarla küçük bir içe aktarma deneyin.

Tedarikçinin fotoğraflarını ve açıklamalarını kullanabilir miyim?

Yalnızca tedarikçi izin verirse: bunlar sahiplerine aittir ve izni almak size kalır. Parser yalnızca kullanmanıza izin verilen görselleri kaydeder.

Tedarikçinin giriş ekranının arkasındaki bayi fiyatlarını okuyabilir mi?

Hayır. Asla oturum açmaz, bu yüzden bir hesabın arkasındaki bayi ya da toptan fiyatlarına erişilemez. Tedarikçiden bir fiyat dosyası isteyin; parser açık kataloğun geri kalanını yine toplar.

Amazon'dan, Google'dan ya da bir sosyal ağ mağazasından katalog kopyalayabilir mi?

Hayır. Koşulları bunu yasaklar; aynısı LinkedIn ve diğer sosyal ağlar için de geçerlidir. Hizmetin resmi dışa aktarma özelliğini kullanın ya da satıcıdan bir dosya isteyin.

Tedarikçi sitesini değiştirirse ne olur?

Parser sayfaları şu anki hâliyle takip eder. Düzen sonradan değişirse güncelleme gerekir ve bu yeni bir sipariştir.

Yanıtınızı bulamadınız mı?

Paketler