我正在努力讓自己更輕松地搜索臨時公寓,但是一個包含這些公寓列表的網站要求我在點擊提交之前從他們的下拉列表中選擇一個建議。無論搜索框中的條目多么完整。這里的最終希望是,我可以轉發到搜索結果,然后從每個列表中提取聯系信息。我能夠使用 Beautiful soup 和 Requests 從列表中提取我需要的數據,但我必須將該特定列表的 URL 粘貼到我的代碼中。我沒有做到那么遠。如果有人對如何繞過登錄頁面以訪問相關列表有任何建議,請告訴我。我嘗試通過查看成功搜索后的書寫方式,將城鎮名稱和州名稱拼接到地址欄中,但這沒有用。這是我的代碼:from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support.select import Selectdriver = webdriver.Firefox()webpage = r"https://mein-monteurzimmer.de"print('Prosim vnesi zeljeno mesto') #Please enter the town to searchsearchterm = input()driver.get(webpage)sbox = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div/input")sbox.send_keys(searchterm)ddown = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div")ddown.select_by_value(1)webdriver.wait(2)#select = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/div")submit = driver.find_element_by_xpath("/html/body/main/cpagearea/section/div[2]/div/section[1]/div/div[1]/section/form/button")submit.click當我檢查搜索框時,在我輸入文本之前找不到與建議相關的任何內容。然后我無法單擊 HTML 代碼,因為這會忽略建議。真令人沮喪。
1 回答

呼如林
TA貢獻1798條經驗 獲得超3個贊
正如您在輸入后所看到的那樣,將創建一個 div 列表。現在您需要為這些 div 獲取一個有效的定位器。要獲取這些創建的 div 的定位器,您需要在調試暫停模式下檢查元素(F12--> Source Tab --> F8)。
嘗試使用下面的代碼來選擇您鍵入的第一個匹配地址。
sbox = driver.find_element_by_xpath("//input[@placeholder='Adresse, PLZ oder Ort eingeben']")
sbox.send_keys(searchterm)
addessXpath = "//div[contains(text(),'"+searchterm+"')]"
driver.find_element_by_xpath(addessXpath).click()
注意:如果有多個匹配地址,將選擇第一個。
添加回答
舉報
0/150
提交
取消