【发布时间】:2019-06-04 22:25:08
【问题描述】:
参考这个post,我从@DebanjanB 获得了解决方案,但是我无法为我的所有产品类型 使用该解决方案,它似乎只适用于@987654323 @ 和 Coal Tar。如何将它用于所有 PRODUCT TYPE
这就是解决办法
1) print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//li[@class='topLevel' and @data-types='Acrylics']//h5[@class]/a[starts-with(@href, '/products/product-details/?prod=')]")))])
但是当我使用for时
print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//li[@class='topLevel' and @data-types='Alkyds']//h5[@class]/a[starts-with(@href, '/products/product-details/?prod=')]")))])
这不起作用
关于如何工作的任何建议。
谢谢
【问题讨论】:
-
我知道我在另一篇文章的回答中提到了这一点,但所有数据都是在第一次加载页面时加载的。如果您只使用
requests,您将能够在几秒钟内轻松抓取所有数据。我至少会尝试上一篇文章中的代码,你会看到所有数据都显示出来了。 -
@antfuentes87 我明白你的意思是使用
request提取所有产品线而不使用selenium,但最后我想映射所有那些产品类型 是,因此我首先单击 PRODUCT TYPE 下拉列表下的一个元素,该元素的作用只不过是一个过滤器 -
哦,好吧,我没有得到那部分。嗯,这非常容易。在
li和类topLevel上,它有一个data-types属性,它告诉你类型。您可以轻松地将其添加到字典中(查看我对另一个问题的回答)。没有selenium并且仅使用requests仍然可以完成。就像我说的 ALL 数据在HTML上的request。 -
是的,现在我也可以从链接中提取它了。感谢您让我使用 request 而不是
selenium -
没问题,很高兴我能让另一个人看到光明 :)
标签: python selenium web-scraping