Python - Tarayıcı Açmadan Web Sitelerinden Veri Çekmek

Arkadaşlar merhaba iyi forumlar,

2 sorum var.

  • Selenium modülünü kullanmak ama tarayıcı çalıştırmadan internetten veri çekmek istiyorum.
  • selenium dışında ne yaparak internetten tarayıcı çalıştırmadan veri çekebilirim?
  1. Selenium için driverların headless sürümünü bulabilirseniz onu kullanın, ama bulmak zor sanırım.

  2. requests, urllib, robobrowser, scrapy gibi kütüphane ve modüller.

Merhaba.

Tarayıcıyı çoğunlukla javascript’i çalıştırması için kullanıyoruz, buna ihtiyaç yoksa bir HTTP(S) istemci kütüphanesi iş görür.

Tarayıcıyı çalıştırıp ekrana çıkmasını engellemek istiyorsanız kolay.

Tam olarak hangi veriyi elde etmeye çalıştığınızı açarsanız daha rahat öneride bulunuruz.

ve bs4 işimi gördü. teşekkür ederim

1 Beğeni

google ın sunduğu hisse senedi bilgilerinin değerini almaya çalışıyordum. bs4 ve request ile çözdüm

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options
ayarlar = Options()
ayarlar.add_argument("--headless")
driver = webdriver.Chrome(options=ayarlar)

şeklinde tarayıcı gözükmeden açabilirsiniz eğer tarayıcı chrome ise

Bu yöntemi daha önce denemiştim, çok sağlıklı olmadığını söyleyebilirim. Bazı sayfalarda istediğiniz bilgiyi çekemeyebiliyorsunuz. Daha önce OBS(öğrenci bilgi sistemi) üzerinden notlarımın açıklanıp açıklanmadığını selenium ile takip etmek istemiştim. Headless olarak kullandığımda notları çekemiyordum. Halbuki tarayıcı penceresi açılınca çekebiliyordum.

ihtiyaç duyunca kullanacağım teşekkür ederim.

bs4 ve request ile güzel oldu ihtiyacımı gördü

1 Beğeni

bunu nasıl yapabilirim?

Ufak bir araştırma ile forumda veya stackoverflow’da bulabilirsiniz.

Bilim ve Teknik’in 500. sayısında WolframAlpha isimli bir arama motoru vardı.Bu arama motoru yazdığınız şeyleri internette arayarak sizin önünüze seriyor.Örnegin hava durumu araması yaptığınız zaman bulunduğunuz yerdeki hava durumunu ekrana bastırıyor.Siz diğer web sitelerindeki veriyi otomatik olarak çekmiş oluyorsunuz.Gelistiricisi ise bir matematik profesörü.

1 Beğeni

Selenium u PhantomJs ile kullanıp tarayıcı ekranda görmeden veri alabilirsiniz.

kullanım örnekleri için kaynak tavsiyeniz var mı?

Daha önce bir arkadaşım için böyle bir şey hazırlamıştım, belki işinize yarayabilir.

import requests
from bs4 import BeautifulSoup

il = input("il adi giriniz : ")

kisaltma = input("il kisaltmasi giriniz: ")
kod = input("il kodu giriniz: ")
translationTable = str.maketrans("ğüşçöı", "guscoi")

def data():
    
    url="http://dunya.arztalep.com/tr-TR/" + il + "/" + il + "-haritasi.aspx"

    resp=requests.get(url)
    
    if resp.status_code==200:
        print("Web sayfası başarıyla açıldı...")
        
        soup=BeautifulSoup(resp.text,'html.parser')
        
        say = 0
        idNo = int(input("id kactan baslayacak: "))
        print(il, "iline ait ilce ve koordinat bilgileri\n")
        while(say < 39):
            sa = soup.find("div", {"id":"loc_"+str(say)})
            for lat in sa.findAll("meta", {"itemprop":"latitude"}):
                for long in sa.findAll("meta", {"itemprop":"longitude"}):
                    for ilce in sa.findAll("span", {"itemprop":"name"}):
                        slug = ilce.text
                        slug = slug.lower()
                        print("(" + str(idNo) + ",", "'" + ilce.text + "',", "'" + kisaltma + "',", kod + ",", "'" + slug.translate(translationTable) + "',", "'" + lat["content"] + "',", "'" + long["content"] + "'),")
            say+=1
            idNo+=1
        
    else:
        print("Error")
          
data()
1 Beğeni
1 Beğeni