Selenium Webdriver 超时(Python 2.7)
Selenium Webdriver Timeout (Python 2.7)
当从纳斯达克抓取数据时,有像 ACHC 这样的代码有空页。 ACHC Empty Field
我的程序遍历了所有的股票代码,当我到达这个代码时它超时了,因为没有要掌握的数据。我正在尝试找出一种方法来检查是否没有任何内容,如果是则跳过自动收报机,但继续循环。代码很长,所以我将 post 最相关的部分:打开页面的循环开头:
## navigate to income statement annualy page
url = url_form.format(symbol, "income-statement")
browser.get(url)
company_xpath = "//h1[contains(text(), 'Company Financials')]"
company = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, company_xpath))).text
annuals_xpath = "//thead/tr[th[1][text() = 'Period Ending:']]/th[position()>=3]"
annuals = get_elements(browser,annuals_xpath)
Here is a pic of the error message
Selenium 没有用于确定元素是否存在的内置方法,因此最常见的做法是使用 try/except 块。
from selenium.common.exceptions import TimeoutException
...
try:
company = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, company_xpath))).text
except TimeoutException:
continue
假设 continue
按预期与您的循环一起工作,这应该使循环继续而不会崩溃。
您可以使用 requests
或 urllib
之类的库来抓取该网页并检查是否有您需要的内容。这些库比 Selenium 快得多,因为它们只获取页面的源代码。如果您正在寻找特定的标签或结构,如表格等,您应该查看 beautifulsoup
,您可以将其与 requests
一起使用来识别页面的非常具体的部分。
当从纳斯达克抓取数据时,有像 ACHC 这样的代码有空页。 ACHC Empty Field
我的程序遍历了所有的股票代码,当我到达这个代码时它超时了,因为没有要掌握的数据。我正在尝试找出一种方法来检查是否没有任何内容,如果是则跳过自动收报机,但继续循环。代码很长,所以我将 post 最相关的部分:打开页面的循环开头:
## navigate to income statement annualy page
url = url_form.format(symbol, "income-statement")
browser.get(url)
company_xpath = "//h1[contains(text(), 'Company Financials')]"
company = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, company_xpath))).text
annuals_xpath = "//thead/tr[th[1][text() = 'Period Ending:']]/th[position()>=3]"
annuals = get_elements(browser,annuals_xpath)
Here is a pic of the error message
Selenium 没有用于确定元素是否存在的内置方法,因此最常见的做法是使用 try/except 块。
from selenium.common.exceptions import TimeoutException
...
try:
company = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, company_xpath))).text
except TimeoutException:
continue
假设 continue
按预期与您的循环一起工作,这应该使循环继续而不会崩溃。
您可以使用 requests
或 urllib
之类的库来抓取该网页并检查是否有您需要的内容。这些库比 Selenium 快得多,因为它们只获取页面的源代码。如果您正在寻找特定的标签或结构,如表格等,您应该查看 beautifulsoup
,您可以将其与 requests
一起使用来识别页面的非常具体的部分。