君子性非异也 善假于物也(三) selenium+phantomjs java将淘宝网页转换成图片,支持下拉刷新

1 篇文章 0 订阅
1 篇文章 0 订阅

1.本地安装phantomjs,并且将bin加入环境变量path中

2.新建java项目,selenium和phantomjs的maven如下,driver有很多种,比如chromedriver等等,phtomjs作为无头浏览器做动态爬虫项目挺爽的

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.12.0</version>
</dependency>

<dependency>
    <groupId>com.codeborne</groupId>
    <artifactId>phantomjsdriver</artifactId>
    <version>1.2.1</version>
</dependency>

3.下面是测试,这里要设置userAgent,否则有的网页无法识别你是何种浏览器,我这里直接用的是49版本谷歌,也可以写你自己的

PhantomJSDriver driver = null;
try {
    //设置必要参数
    DesiredCapabilities dcaps = new DesiredCapabilities();
    //ssl证书支持
    dcaps.setCapability("acceptSslCerts", true);
    //截屏支持
    dcaps.setCapability("takesScreenshot", true);
    //设置头
    dcaps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36");
    //css搜索支持
    dcaps.setCapability("cssSelectorsEnabled", true);
    //js支持
    dcaps.setJavascriptEnabled(true);
    //驱动支持
    dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C:\\Users\\fdd\\Desktop\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
    //创建无界面浏览器对象

    driver = new PhantomJSDriver(dcaps);
    driver.get("https://h5.m.taobao.com/?sprefer=sypc00");

    int size = 100;
    for (int i = 0; i <= size; i++) {
        ((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 100);");//触发下拉刷新
        Thread.sleep(50);
        System.out.println(i);
    }
    File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(scrFile, new File("C:\\Users\\fdd\\Desktop\\phantomjs-2.1.1-windows\\bin\\baidu_selenium.png"));
} finally {
    driver.close();//关闭浏览器
    driver.quit();//注意调用 不quit会有多个driver进程
}

效果如下


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值