0
我正在收集website的鏈接。我遍歷它有頁面,每個頁面上的我檢索與該鏈接:Selenium - Python設置查找元素的超時時間
links = driver.find_elements_by_xpath('//*[contains(@class, "m_rs_list_item_main")]/div[1]/div[1]/a')
現在......有時網站失敗,並不表明它應該的鏈接。例如,它通常說:
鏈接1
鏈接2
...
鏈接ň
頁M
突然有一個頁面,假設M + 1根本不顯示任何鏈接。然後代碼卡在上面的行(links = ...
)「尋找」的鏈接。我數以看到每個網頁的鏈接數量我有一個計數器鏈接:
if numlinks_inrun == 0:
print('nolinks')
現在,我從來沒有得到消息「nolinks」打印。當我按下CTRL + C在終端中止程序,我在終端得到回溯:
links = driver.find_elements_by_xpath('//*[contains(@class, "m_rs_list_item_main")]/div[1]/div[1]/a')
File "/home/vladimir/anaconda3/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 305, in find_elements_by_xpath
return self.find_elements(by=By.XPATH, value=xpath)
這就是爲什麼我知道程序卡住在這一點上。有誰知道如何設置超時時間,以便硒不會永久搜索那些未知的鏈接?
https://selenium-python.readthedocs.io/waits.html#explicit-waits – Amit
@VladimirVargas我得到一個消息'這個請求被阻安全rules'時我嘗試訪問[網站](http://www.metrocuadrado.com/venta/)。我們有其他選擇嗎?謝謝 – DebanjanB
它看起來像一個特定的頁面或一些頁面需要很長時間來加載它。您可以設置頁面加載超時。我不認爲這是因爲find元素默認等待,如果它沒有找到任何元素,它不會等到你設置隱式超時。 – Murthi