मैं https://www.findomestic.it/ से अपने स्क्रैपिंग का परिणाम प्रदर्शित करने का प्रयास कर रहा हूं, मुझे एक त्रुटि मिल रही है

मेरा कोड यहाँ है:

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

driver = webdriver.PhantomJS()
driver.get("https://www.findomestic.it/")

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.select.bh-option"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, 'AUTO NUOVA'))).click()
driver.find_element_by_id("findomestic_simulatore_javascript_importo").send_keys("2000")
driver.find_element_by_id('findomestic_simulatore_javascript_calcola').submit()
time.sleep(100)
driver.save_screenshot('sreenshot.png')
print(driver.find_element_by_tag_name('body').text)
for item in WebDriverWait(driver,10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'ul.fd-siff-element > li')))[1:]:
    print(item.text.split('\n')[:-1])

मेरा अपेक्षित आउटपुट

['56,20 € PER', '42 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO']
['64,10 € PER', '36 MESI', '9,53 % TAN FISSO', '9,96 % TAEG FISSO']
['75,20 € PER', '30 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO']
['91,80 € PER', '24 MESI', '9,46 % TAN FISSO', '9,89 % TAEG FISSO']
['119,70 € PER', '18 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO']

निम्न त्रुटि होती है: अपेक्षित आउटपुट

2
user10732315 15 जिंदा 2019, 18:54

2 जवाब

सबसे बढ़िया उत्तर

मेरे पास इसे पूर्ण स्क्रीन बनाने के लिए set_window_size है।

और मैंने लोकेटर को xPath में बदल दिया है:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options


chrome_options = Options()
chrome_options.add_argument('--start-maximized')
driver = webdriver.Chrome("/path/to/chromedrive", chrome_options=chrome_options)
driver.get("https://www.findomestic.it/")

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.select.bh-option"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, 'AUTO NUOVA'))).click()
driver.find_element_by_id("findomestic_simulatore_javascript_importo").send_keys("2000")
driver.find_element_by_xpath('//*[@class="btn bh-btn"]').click()
# driver.find_element_by_id('findomestic_simulatore_javascript_form').submit()
time.sleep(100)
driver.save_screenshot('sreenshot.png')
print(driver.find_element_by_tag_name('body').text)
for item in WebDriverWait(driver,10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'ul.fd-siff-element > li')))[1:]:
    print(item.text.split('\n')[:-1])

उम्मीद है ये मदद करेगा!


विंडो को अधिकतम करने के लिए संपादन के बाद यह आउटपुट है:

Le proposte selezionate per te
CONFRONTA OFFERTE
IL TUO PROGETTO
AUTO NUOVA
arrow_drop_down
IMPORTO
euro_symbol
ASSICURAZIONE
help_outline

50,20 € PER
48 MESI
9,45 %
TAN FISSO
9,87 %
TAEG FISSO
Importo richiesto 2.000,00 €
keyboard_arrow_up
check_circle
Selezionata per te
check_circle
Selezionata per te
save SALVA PREVENTIVO
compare_arrows CONFRONTA
RICHIEDI FINANZIAMENTO
56,20 € PER
42 MESI
9,54 % TAN FISSO
9,97 % TAEG FISSO
keyboard_arrow_down
64,10 € PER
36 MESI
9,53 % TAN FISSO
9,96 % TAEG FISSO
keyboard_arrow_down
75,20 € PER
30 MESI
9,54 % TAN FISSO
9,97 % TAEG FISSO
keyboard_arrow_down
91,80 € PER
24 MESI
9,46 % TAN FISSO
9,89 % TAEG FISSO
keyboard_arrow_down
119,70 € PER
18 MESI
9,54 % TAN FISSO
9,97 % TAEG FISSO
keyboard_arrow_down

picture_as_pdf PREVENTIVO/INFO EUROPEE DI BASE CREDITO CONSUMATORI
Messaggio pubblicitario con finalità promozionale. Offerta di prestito personale, valida per oggi,come da esempio rappresentativo: importo totale dovuto 2.409,60 €, spese di incasso rata 0,00 €, spese comunicazione periodica (almeno una all'anno) 0,00 €,imposta di bollo/sostitutiva addebitata sulla prima rata 0,00 €.
Al fine di gestire le tue spese in modo responsabile e di conoscere eventuali altre offerte disponibili, Findomestic ti ricorda, prima di sottoscrivere il contratto, di prendere visione di tutte le condizioni economiche e contrattuali, comprese eventuali condizioni relative alle opzioni di cambio rata e salto rata (attivabili dopo aver rimborsato le prime 6 rate), facendo riferimento alle Informazioni Europee di Base sul Credito ai Consumatori (IEBCC) disponibili nel processo online. Salvo approvazione di Findomestic Banca S.p.A.  
Findomestic Banca SpA . P.Iva 03562770481
Dati Societari | Trasparenza | Privacy | Sicurezza | Cookie | Codice di Condotta | Condizioni Assicurative
['56,20 € PER', '42 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO']
['64,10 € PER', '36 MESI', '9,53 % TAN FISSO', '9,96 % TAEG FISSO']
['75,20 € PER', '30 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO']
['91,80 € PER', '24 MESI', '9,46 % TAN FISSO', '9,89 % TAEG FISSO']
['119,70 € PER', '18 MESI', '9,54 % TAN FISSO', '9,97 % TAEG FISSO']
1
Moshe Slavin 15 जिंदा 2019, 23:23

ऐसा लगता है कि जब आप click के बजाय सबमिट बटन पर submit ट्रिगर करते हैं, तो form गलत डेटा प्राप्त करता है (ध्यान दें कि डाला गया "2000" मान स्वतः 2.000,00 में परिवर्तित हो जाना चाहिए। जो .submit() के मामले में नहीं किया जाता है)

प्रतिस्थापित करने का प्रयास करें

driver.find_element_by_id('findomestic_simulatore_javascript_calcola').submit()

साथ

driver.find_element_by_id('findomestic_simulatore_javascript_calcola').click()
0
Andersson 15 जिंदा 2019, 19:08