如果我没有以正确的方式发布一些东西,请原谅我,因为这是我第一次发到这个网站。我目前正在为我的学校制作一个爬虫(用java语言),它访问pinterest上的某个页面,并“回复”上面的所有照片。我目前正在使用Selenium编写代码,但是我遇到了重复问题。我知道如何编程来打开一个特定的图像并对其进行修复,但是我如何对其他图片进行同样的处理呢?我必须这样做的各种兴趣网页与可变数量的图片在每一页。下面是我现在的相关代码:
public static void GetPageInfo(WebDriver driver) throws AWTException, InterruptedException { driver.get("https://www.pinterest.com/kachance33/school-psych/"); Thread.sleep(2000); driver.findElement(By.xpath("//div[2]/div/div/div[2]/div[3]/a/div[2]/div/div ")). click(); Thread.sleep(3000); driver.findElement(By.xpath("(//button[@type='button'])[23]")).click(); driver.findElement(By.xpath("(//button[@type='button'])[59]")).click(); }
为了简化我的问题,下面是:
发布于 2015-11-20 07:43:47
基本思想是将driver.findElements()与xpath或css选择器一起使用,该选择器映射到图片列表(以WebElements的形式),并迭代它们。
也就是说。
List<WebElement> pictures = driver.findElements(By.cssSelector(".GridItems .item"));
for (WebElement picture : pictures) {
// code to pin the picture
}使用driver.findElements()也消除了问题#3中的问题,因为该方法不会抛出异常。如果没有找到图片,它将返回一个空列表。
https://stackoverflow.com/questions/33813754
复制相似问题