public class Unsplash {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.firefox.marionette","d:\\selenium\\gecko\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.manage().window().maximize();
//driver.manage().window().setPosition(new Point(1920,0));
//driver.manage().window().setSize(new Dimension(1920/2,1080));
driver.get("http://unsplash.com/");
driver.findElement(By.className("_32SMR")).click();
for(int i=0;i<30;i++)
{
driver.findElement(By.tagName("body")).sendKeys(Keys.PAGE_DOWN);
}
//driver.getPageSource();
Pattern p = Pattern.compile("/?photo=(.*?)");
Matcher m = p.matcher(driver.getPageSource());
while(m.find())
{
driver.get("https://unsplash.com"+m.group());
System.out.println(m.group());
}
driver.quit();
}
}
我正在尝试从unsplash.com中提取href链接以自动下载网站href linksformat是href=“/photos/9l\u 326fiszk”
对于代码系统.out.println(m.group());我刚收到“/照片/”作为输出。如何获得完整的href url例如“/photos/9l\u 326fiszk”作为输出
2条答案
按热度按时间zd287kbt1#
而不是将正则表达式与整个
driver.getPageSource()
,更“ selenium ”的方法是定位包含元素的元素href
属性,然后计算正则表达式。假设你只想
href
来自所有<a>
页面上的标记:plicqrtu2#
以下是您问题的答案:
我们可以采用一种更简单的方法来获取使用java collection的不同艺术家的图像的URL。以下代码块按艺术家获取图像的所有链接:
控制台上的输出如下:
如果这能回答你的问题,请告诉我。