Python Selenium ile Gidilen Sayfadaki Bilgileri Çekmek


#1

Merhaba arkadaşlar,

yandex ufak bir projem için python selenium ile gittim sayfadaki url, title vs gibi bilgileri tarayıcı üzerinde çekmek istiyorum bu konuda internette araştırdım fakat request yöntemi var yalnız ben selenium web browser ile gittiğim. sayfada iken çıkan sonuçtan almak istiyorum nedeni : selenium ile alınan bilgiye göre ilerleyeceğim ve aynı url tekrar kaydetmemek için veritabanına kaydedip karşılaştıracağım

seleniumda bu resme göre bir örnek url çekme kodu ve mantıgını yazabilrmisiniz ?
python3 ile aşağıdaki kodda Yandex search kadar gittim

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
chrome_options = Options()
chrome_options.add_argument(‘Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15G77 [FBAN/FBIOS;FBAV/189.0.0.44.93;FBBV/124150883;FBDV/iPhone9,3;FBMD/iPhone;FBSN/iOS;FBSV/11.4.1;FBSS/2;FBCR/ClaroBrasil;FBID/phone;FBLC/pt_BR;FBOP/5;FBRV/124823384]’)
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.delete_all_cookies()
browser.get(‘https://yandex.com.tr/’)

browser.find_element_by_xpath('//input[@aria-label="Sorgu"]').send_keys("haberler" + Keys.RETURN)
time.sleep(2)


#2

arkadaşlar konu kaynadı sanırım çözüm yok mu ?


#3

Aşağıdaki dökümaı inceleyerek, mevcut sayfadan bilgi almak hakkında daha detaylı bilgi alabilirsiniz. Bu durumda xpath yerine find_elements_by_class_name kullanmanız gerekiyor. Bulmanız gereken class ismi: path__item

https://selenium-python.readthedocs.io/locating-elements.html


#4

Beatifulsoup kullanarak halledebilirsiniz.
örnek olarak kod şöyle olmalı ama test etmedim.

    import time
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.keys import Keys
    chrome_options = Options()
    chrome_options.add_argument(‘Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15G77 [FBAN/FBIOS;FBAV/189.0.0.44.93;FBBV/124150883;FBDV/iPhone9,3;FBMD/iPhone;FBSN/iOS;FBSV/11.4.1;FBSS/2;FBCR/ClaroBrasil;FBID/phone;FBLC/pt_BR;FBOP/5;FBRV/124823384]’)
    browser = webdriver.Chrome(chrome_options=chrome_options)
    browser.delete_all_cookies()
    browser.get(‘https://yandex.com.tr/’)
    soup = BeautifulSoup(browser.page_source, 'html.parser')
    veri=[td.text for td in soup.findAll('li', class_='serp-item')]#html taglerde li ile başladığı için haberleri çekiyoruz
    print(veri)