websiteからリンクを集めています。時々ウェブサイトに障害が発生し、そのそれが必要のリンクを表示しません...今Selenium - Python要素の検索でタイムアウトを設定する
links = driver.find_elements_by_xpath('//*[contains(@class, "m_rs_list_item_main")]/div[1]/div[1]/a')
:私はそれを持っているページを反復処理し、各ページに、私はとのリンクを取得します。例えば、それは通常、こう述べています。
リンク1
リンク2
...
リンクN
ページM
そして突然、そこにあるページ、リンクを一切表示していないM + 1としましょう。その後、コードは上記のリンク(links = ...
)でリンクを「探している」ことになります。今、私はメッセージ「nolinks」印刷を取得することはありません
if numlinks_inrun == 0:
print('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