Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

KERİM ERBAY

Ne Mutlu Türküm Diyene!
TM Üye
Katılım
29 Mar 2009
Konular
2,176
Mesajlar
9,577
Çözüm
49
Online süresi
1y 4mo
Reaksiyon Skoru
5,109
Altın Konu
497
Başarım Puanı
449
MmoLira
137,024
DevLira
27
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

1705387215822.png


Web siteleri kullanıcı tercihlerini kusursuz bir şekilde hatırlıyor gibi görünüyor ancak bu, web kazımada nasıl kopyalanabilir? Tercihler genellikle çerezler tarafından kontrol edilir ve kazıma işleminde bunu da halledebiliriz!

Bu kılavuzda, web kazımadaki çerezlere, ne olduklarına ve nasıl çalıştıklarına bir göz atacağız. Ayrıca, giriş yapılan sayfaları kazımak için çerezleri kullanarak pratik bir web kazıma örneğini de inceleyeceğiz. Hadi başlayalım!!!

HTTP Çerezleri nedir?​

HTTP çerezleri, bir HTTP istemcisinde veya bir web tarayıcısında depolanan küçük anahtar-değer veri noktaları parçalarıdır. Çoğunlukla kullanıcı tercihlerini ve oturum açma bilgileri, alışveriş sepeti öğeleri ve web sitesi tercihleri gibi bilgi verilerini depolamak için kullanılırlar.

Çerezler, kullanıcı bir web sitesini ziyaret ettiğinde web sunucusu tarafından oluşturulur. Bunlar, kullanıcının tarayıcısına (veya HTTP istemcisine), adı verilen bir HTTP yanıt başlığı aracılığıyla kaydedilir Set-Cookie. Daha sonra, aşağıdaki her istekte tarayıcı, ayarlanan çerezleri başlığı kullanarak web sunucusuna geri gönderir Cookie:

Kod:
Cookie: key1=value1;key2=value2

kazıyıcı test web sitesi aracılığıyla bu Python örneğine bir göz atalım :

Kod:
import httpx

# request httpbin.dev to set a cookie for us:
response = httpx.get("https://httpbin.dev/cookies/set?name=scrapfly&password=123")
# this returns a Set-Cookie header which our browser would read and store to memory
response.headers['Set-Cookie']
# 'name=scrapfly;password=123'

# Then, to use cookies in the next request we need to add the Cookie header:
response2 = httpx.get("https://httpbin.dev/cookies", headers={"Cookie": response.headers['Set-Cookie']})

Dolayısıyla çerezler aslında bir web tarayıcısı veya bir HTTP istemcisi tarafından bellek deposu olarak yönetilen HTTP başlıklarıdır.


Genel olarak çerezleri üç farklı türe ayırabiliriz:

Israrcı .
Son kullanma tarihi olan çerezler, tarayıcı kapatıldıktan sonra bile kullanıcının cihazında kayıtlı kalır. Genellikle kullanıcı ayarlarının, yer imlerinin ve kimlik doğrulama durumunun kaydedilmesi gibi uzun vadeli veri depolama için kullanılırlar.

Oturum .
Kullanıcı tarayıcıyı kapattığında silinen geçici çerezler. Bunlar genellikle tek bir göz atma oturumu sırasında alışveriş sepeti verilerinin kaydedilmesi gibi kısa süreli veri depolama için kullanılır.

Üçüncü şahıs .
Hedef web sitesinin kendisi tarafından değil, bağlantılı reklamlar ve analiz araçları tarafından oluşturulur. Bu çerezler genellikle kullanıcıların gezinme alışkanlıklarını ve geçmişini izlemek için kullanılır; bu da reklamverenlerin kullanıcıların ilgi alanlarına göre özel reklamlar oluşturmasına olanak tanır.

Bununla birlikte, işlevsel olarak bu çerezlerin tümü, web kazımadaki teknik açıdan aynıdır. Bununla birlikte, kazıyıcılar geliştirirken çoğunlukla web sitesi işlevselliğini çoğaltmak için kalıcı ve oturum çerezleriyle ilgileniyoruz.

Artık çerezlere ve nasıl çalıştıklarına dair genel bir bakışa sahibiz. Web kazımada neden çerezlere ihtiyacımız olduğunu keşfedelim!

Web Scraping'deki Çerezler Neden Önemlidir?​

lang=enÇerezler, genellikle ve gibi çerez değerleriyle ifade edilen para birimi, dil ve bölge seçimi gibi kullanıcı tercihlerini kaydeder currency=USD. Çerez değeri kontrolü sayesinde başka bir dil ve para biriminde kazıma yapmak mümkündür .

Çerezler ayrıca e-ticaret uygulamalarındaki alışveriş sepeti verileri, önerilen ürünler ve ödeme seçenekleri gibi tarama bilgilerini de kaydedebilir. Web kazıyıcılara çerez eklemek bu tür verilerin kazınmasına yardımcı olabilir.

Web siteleri ayrıca, istek gönderenin organik bir tarayıcı mı yoksa bir kazıyıcı bot mu olduğunu belirlemek için başlıklar ve çerezler dahil olmak üzere web kazıyıcı bağlantılarını da analiz edebilir. Bu nedenle, çerezlerin dikkatli bir şekilde eklenmesi, web kazıma tespitinin engellenmesine yardımcı olabilir .

Çerezleri kullanarak web kazımanın bir başka değerli kullanım durumu, oturum açmayı gerektiren sayfaları kazımaktır. Öyleyse bunun bir örneğine bakalım, ancak devam etmeden önce kullanacağımız araçlara bakalım.

Kurmak​

Bu kılavuzda, farklı web kazıma kütüphanelerini kullanarak giriş yapılan sayfaları kazımak için çerezleri kullanacağız:

  • Httpx : HTML veya JSON biçiminde istek gönderen ve veri alan bir HTTP istemcisi.
  • Oyun Yazarı : Başsız tarayıcıların çalıştırılmasına ve otomatikleştirilmesine olanak tanıyan bir kitaplık.
  • ScrapFly : Ölçekli kazımaya olanak tanıyan bir web kazıma API'si.
  • BeautifulSoup : HTML'den veri ayıklayan bir ayrıştırma kitaplığı.
Bu kütüphaneler pip terminal komutu kullanılarak kurulabilir:

Kod:
pip install httpx playwright scrapfly bs4

Web Scraping'de Çerezler Nasıl Kullanılır?​

almak için çerezleri kullanacağız :

1705387420075.png


Kod:
web-scraping.dev'deki çerez uygulama örneği

Yukarıdaki sayfa verileri özeldir ve yalnızca oturum açmış kullanıcılar tarafından erişilebilir. Bu web sitesi, kimlik doğrulama çerezleri aracılığıyla oturum açmayı kontrol eder, bu nedenle bu sayfayı silmek için kimlik doğrulama işlemini çoğaltmamız gerekir. Bu kılavuzda, isteğe çerez değerlerini ekleyerek kimlik doğrulama durumunu çoğaltacağız.

Başlamak için tarayıcıdan kimlik doğrulama çerezini almamız gerekiyor. Bunu yapmak için, bir web tarayıcısındaki anahtar aracılığıyla erişilebilen geliştirici araçları . F12Ardından sekmeye gidin Networkve tarayıcımızın gönderdiği çerezleri görebileceğimiz sayfayı yeniden yükleyin:

1705387453702.png

Kod:
Geliştirici araçlarındaki arka plan istekleri

Sol tarafta tarayıcıdan web sunucusuna gönderilen tüm istekleri görebiliriz. Ancak biz sadece taleple ilgileniyoruz login. Ayrıca istekle birlikte gönderilen tüm başlıkları ve çerezleri de sekmeden gözlemleyebiliyoruz Headers.

Çerez, authkimlik doğrulama belirtecini temsil eder. CookieBu çerez adını ve değerini web kazıyıcımızdaki başlığa ekleyeceğiz :

HTTP:
from httpx import Client
from bs4 import BeautifulSoup

# Add the cookie header to the headers object
headers = {"Cookie": "auth=user123-secret-token"}

with Client(headers=headers) as client:
    response = client.get("https://web-scraping.dev/login")
    soup = BeautifulSoup(response.text, "html.parser")
    for div in soup.select("div.form-text.mb-2"):
        print(div.text)
        """Logged in as User123
        The secret message is:🤫"""

Kod:
from playwright.sync_api import sync_playwright
from bs4 import BeautifulSoup

with sync_playwright() as playwight:
    # Launch a chrome headless browser
    browser = playwight.chromium.launch(headless=True)
    context = browser.new_context()
    context.set_extra_http_headers(
        {
            # Add the cookie header to the headers object
            "Cookie": "auth=user123-secret-token"
        }
    )
    page = context.new_page()
    page.goto("https://web-scraping.dev/login")
    soup = BeautifulSoup(page.content(), "html.parser")
    for div in soup.select("div.form-text.mb-2"):
        print(div.text)
        """Logged in as User123
        The secret message is:🤫"""

Kod:
from scrapfly import ScrapeConfig, ScrapflyClient, ScrapeApiResponse
from bs4 import BeautifulSoup

scrapfly = ScrapflyClient(key="Your ScrapFly API key")

api_response: ScrapeApiResponse = scrapfly.scrape(
    scrape_config=ScrapeConfig(
        url="https://web-scraping.dev/login",
        # Add the cookie header to the headers object
        headers={
            "Cookie": "auth=user123-secret-token",
        },
        # Enable headless browsers (like playwright)
        render_js=True,
        # Enable the anti scraping protection to bypass blocking
        asp=True,
    )
)

soup = BeautifulSoup(api_response.scrape_result["content"], "html.parser")
for div in soup.select("div.form-text.mb-2"):
    print(div.text)
    """Logged in as User123
        The secret message is:🤫"""

Cookie Burada başlığı web kazıma istemcimize ekliyoruz ve HTML'yi bir BeautifulSoup nesnesine sarıyoruz. Daha sonra HTML'deki metin verilerini ararız.

Tıkır tıkır çalışıyor! Web kazıma için çerezleri kullanan web sitesi bizi kimliği doğrulanmış bir kullanıcı olarak tanır ve oturum açma korumalı verilere erişmemizi sağlar.
 
paylaşım için teşekkürler
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst