Skip to content

koti42/turkish-citizen-list-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

PTT Address Data Scraper

A Laravel command to scrape address data (provinces, districts, neighborhoods) from PTT's postal code website.

Features

  • Scrapes all provinces, districts, and neighborhoods from PTT
  • Saves data in JSON format
  • Shows progress with colored console output
  • Handles Turkish characters
  • Cross-platform compatible (Windows/Linux)
  • Rate limiting to prevent server overload
  • Error handling and recovery
  • Live progress tracking

Requirements

  • PHP >= 7.4
  • Laravel >= 8.x
  • Composer
  • GuzzleHttp

Installation

  1. Install the required package:
composer require guzzlehttp/guzzle
  1. Create the command:
php artisan make:command ScrapePttAddress
  1. Copy the provided code to app/Console/Commands/ScrapePttAddress.php

Usage

Run the command:

php artisan scrape:ptt-address

The script will:

  1. Connect to PTT's website
  2. Scrape all provinces
  3. Get districts for each province
  4. Get neighborhoods for each district
  5. Save data to storage/app/ptt_address_data.json

Output Format

[
  {
    "il_id": "1",
    "il_adi": "ADANA",
    "ilceler": [
      {
        "ilce_id": "12",
        "ilce_adi": "ALADAG",
        "mahalleler": [
          {
            "mahalle_id": "1_2",
            "mahalle_adi": "AKOREN MAH",
            "posta_kodu": "01722"
          }
        ]
      }
    ]
  }
]

Error Handling

  • The script includes comprehensive error handling
  • Recovers from connection issues
  • Logs errors to console
  • Saves progress regularly

PTT Adres Veri Çekici

PTT'nin posta kodu web sitesinden adres verilerini (il, ilçe, mahalle) çeken Laravel komutu.

Özellikler

  • Tüm il, ilçe ve mahalleleri PTT'den çeker
  • Verileri JSON formatında kaydeder
  • Renkli konsol çıktısıyla ilerlemeyi gösterir
  • Türkçe karakterleri düzgün işler
  • Çoklu platform desteği (Windows/Linux)
  • Sunucu yükünü önlemek için hız sınırlaması
  • Hata yönetimi ve kurtarma
  • Canlı ilerleme takibi

Gereksinimler

  • PHP >= 7.4
  • Laravel >= 8.x
  • Composer
  • GuzzleHttp

Kurulum

  1. Gerekli paketi yükleyin:
composer require guzzlehttp/guzzle
  1. Komutu oluşturun:
php artisan make:command ScrapePttAddress
  1. Verilen kodu app/Console/Commands/ScrapePttAddress.php dosyasına kopyalayın

Kullanım

Komutu çalıştırın:

php artisan scrape:ptt-address

Script şunları yapacak:

  1. PTT web sitesine bağlanır
  2. Tüm illeri çeker
  3. Her il için ilçeleri alır
  4. Her ilçe için mahalleleri alır
  5. Verileri storage/app/ptt_address_data.json dosyasına kaydeder

Çıktı Formatı

[
  {
    "il_id": "1",
    "il_adi": "ADANA",
    "ilceler": [
      {
        "ilce_id": "12",
        "ilce_adi": "ALADAG",
        "mahalleler": [
          {
            "mahalle_id": "1_2",
            "mahalle_adi": "AKOREN MAH",
            "posta_kodu": "01722"
          }
        ]
      }
    ]
  }
]

Hata Yönetimi

  • Script kapsamlı hata yönetimi içerir
  • Bağlantı sorunlarından kurtarır
  • Hataları konsola loglar
  • İlerlemeyi düzenli olarak kaydeder

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published