用Selenium报废会返回NoSuchElementException错误

时间:2020-06-09 07:13:50

标签: python selenium selenium-webdriver xpath web-scraping

我正在一个Web抓取项目中,尝试从Amazon网站中提取信息。我要在bdi tag的无序列表中抓取的元素。要刮擦此信息,我正在使用XPath。

到目前为止,这是我的代码

self.asin.append(self.driver.find_element_by_xpath("//bdi[text()='ASIN']/ancestor::li").text.split(": ")[1])

self.asin是一个列表,其中包含从多个链接中提取的所有ASIN值。

在此link

中查看产品详细信息

我只需要ASIN代码本身,而列表中没有其他内容。上面的代码适用于大多数链接,但有时会失败。我尝试添加time.sleep(10),但这仍然失败。我检查了代码失败的链接,但是该链接在产品详细信息下确实包含一个ASIN元素。由于页面结构,我觉得只有XPath可以工作。

我在网上寻找解决方案,发现WebDriverWait含硒,它将等待元素被加载,然后抓取所需的信息。以下代码是我编写的WebDriverWait

的示例代码
try:
    next_page_button = WebDriverWait(self.driver, 20).until(EC.presence_of_element_located((By.CLASS_NAME, 'a-last')))
    next_page_button.click()

except TimeoutException:
    print("Loading took too much time!")

是否可以将WebDriverWaitXPath合并

0 个答案:

没有答案