[]

web sayfa veri çekme python

Bir web sayfasından veri çekmek istiyorum. ancak sitedeki bazı veriler 15-20 sn gecikmeli geliyor, webservis ile beslendikleri için. Aşağıdaki gibi bir python kodum var ancak 20 sn beklemesini sağlayamıyorum. Yardımcı olabilecek var mıdır?

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

def login():
driver = webdriver.PhantomJS()
driver.get("login_sayfasıi")
driver.find_element_by_id('UserName').send_keys("username")
driver.find_element_by_id('Password').send_keys("password")
driver.find_element_by_id('btnLogin').click()


# veri çekilecek sayfaya git
driver.get("veri_çekilecek_web_adresi")

driver.wait = WebDriverWait(driver, 20)

#belirli bir datayı çek
adet = driver.find_element_by_id('toplamSatışAdedi').text
üretim = driver.find_element_by_id('toplamSatışTutari').text
print(adet)
print(üretim)


if __name__ == "__main__":
login()

 
(bkz: curl)


  • goodz  (08.06.19 21:14:18) 
20 sn beklemek gerektiğinden emin misin? bazılarında cookie header falan alıp baştan post yapınca geliyor yada ardı ardına bikaç post yapman gerekiyor.

bide postman denedin mi
  • ipmus90  (08.06.19 21:19:30) 
curl ile çekemezsin. yazılımcı değilim ama ajax'la falan daha sonradan çekilen verilere ulaşamıyor curl. phantomjs'ye bakmanı öneririm.


  • slhmlr  (08.06.19 21:22:22) 
@ipmus90 evet ortalama 20 saniye sonra data geliyor buna eminim çünkü yukarıdaki kodu çalıştırdığımda data genelde gelirken bazen gelmiyor. postman'i veya curl'u nasıl kullanırım bilmiyorum. bilale anlatır gibi anlatsanız daha iyi olur:)


  • hlt1985  (08.06.19 21:22:27) 
kardeş veriyi çekmen için sayaç varsa server tarafında da sayaç olması gerekiyor ve linkin beli olması gerekiyor. link belli değilse soket bağlantısı açık kalmalı ve link soket bağlantısından gönderilmeli. Google chrome ögeyi incele yapıp network seçip nasıl bi bağlantı kuruluyor link nasıl geliyor bi test etmeni tavsiye ederim önce. python ve curl ile yapılabilir tabikide.


  • ipmus90  (08.06.19 22:34:23) 
Geçenlerde veri defterinde şuna denk gelmiştim. Tarayıcıya bekleme koymak bölümünde aradığını bulabilirsin sanırım

www.veridefteri.com


selenium-python.readthedocs.io
  • bagcivan  (09.06.19 03:58:10) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.