当前位置: 首页 > news >正文

vs进行网站建设无极在线招聘网最新招聘

vs进行网站建设,无极在线招聘网最新招聘,会做网站的公司,沈阳网站建设黑酷科技chromedriver是谷歌浏览器驱动,用来模拟谷歌运行操作的一个工具#xff0c;此处主要讲解Java后端利用此插件进行网页截图#xff0c;并且适配Linux部署。 环境准备 Wondows服务器或电脑 本机需安装Chrome谷歌浏览器#xff0c;根据本机浏览器版本#xff0c;下载对应的chr…chromedriver是谷歌浏览器驱动,用来模拟谷歌运行操作的一个工具此处主要讲解Java后端利用此插件进行网页截图并且适配Linux部署。 环境准备 Wondows服务器或电脑 本机需安装Chrome谷歌浏览器根据本机浏览器版本下载对应的chromedriver版本chromedrive插件下载地址 谷歌chromeDriver插件地址下载后解压即可。PS网上看到许多需要配置环境变量的实测根本不需要。 注意插件版本和本机浏览器版本一定要对应 Linux服务器 安装Chrome yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm查看版本 google-chrome --version根据版本下载插件chromedrive插件下载地址https://registry.npmmirror.com/binary.html?pathchromedriver/选择Linux版上传到服务器后解压上面默认安装最新版本。 // 解压 unzip chromedriver_linux64.zip // 赋权 chmod 777 chromedriver // 安装浏览器中文字体 yum -y groupinstall FontsJava代码部分 引入maven !-- 浏览器截图jar包 --dependencygroupIdorg.seleniumhq.selenium/groupIdartifactIdselenium-java/artifactIdversion3.141.59/version/dependencydependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion27.0-jre/version/dependency截图工具方法类 代码里面用到的是ChromeDriverService启动还有一种是 ChromeDriver driver new ChromeDriver(options); System.setProperty(“webdriver.chrome.driver”, “/data/server/legal-document-library-task/chromedriver”); 这种在高并发频繁截图时会遇到ChromeDriver插件未正常关闭的情况会占用端口或内存。推荐使用ChromeDriverService方式。 public String imgUntil(String url){ChromeDriver driver null;FileInputStream inputFile null;ChromeDriverService service null;try {//(推荐)利用ChromeDriverService启动//这里/data/server/legal/chromedriver是下载的驱动路径Windows对应chromedriver.exe Linux对应chromedriver具体路径看你把驱动放在哪service new ChromeDriverService.Builder().usingDriverExecutable(new File(/data/server/legal/chromedriver)).usingAnyFreePort().build();service.start();ChromeOptions options new ChromeOptions();//ssl证书支持options.setCapability(acceptSslCerts, true);//截屏支持options.setCapability(takesScreenshot, true);//css搜索支持options.setCapability(cssSelectorsEnabled, true);//设置浏览器参数options.addArguments(--headless);options.addArguments(--no-sandbox);options.addArguments(--disable-gpu);options.addArguments(--disable-dev-shm-usage);options.setHeadless(true);driver new ChromeDriver(service,options);//设置超时避免有些内容加载过慢导致截不到图driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.MINUTES);driver.manage().timeouts().implicitlyWait(1, TimeUnit.MINUTES);driver.manage().timeouts().setScriptTimeout(1, TimeUnit.MINUTES);//设置需要访问的地址driver.get(url);Thread.sleep(2000);//获取高度和宽度一定要在设置URL之后不然会导致获取不到页面真实的宽高Long width (Long)driver.executeScript(return document.documentElement.scrollWidth);Long height (Long) driver.executeScript(return document.body.parentNode.scrollHeight);System.out.println(高度height);/*//这里按照网页需求有些是滑动的时候才加在的如ajax的异步加载long temp_height 0;while (true) {//每次滚动500个像素因为懒加载所以每次等待2S 具体时间可以根据具体业务场景去设置driver.executeScript(window.scrollBy(0,500));temp_height 500;if(temp_heightheight){break;}}*///设置窗口宽高设置后才能截全driver.manage().window().setSize(new Dimension(width.intValue(), height.intValue()));File srcFile driver.getScreenshotAs(OutputType.FILE);// 这里的需求是将图片转为Base64码后换回实际按需求控制inputFile new FileInputStream(srcFile);byte[] buffer new byte[(int)srcFile.length()];inputFile.read(buffer);String content new BASE64Encoder().encode(buffer);return content;//设置截图文件保存的路径//String screenshotPath C:\\wenjian\\YA\\imgGG1.png;//FileUtils.copyFile(srcFile, new File(screenshotPath));}catch (Exception e){e.printStackTrace();log.error(截图失败:e);return null;}finally {try{if (inputFile ! null){inputFile.close();}}catch (Exception ee){}if (driver! null){driver.quit();service.stop();}}}工具2 全面截屏//配置本地的chromediver.exe谷歌的内核System.setProperty(webdriver.gecko.driver, C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe);//设置ChromeOptions打开方式设置headless不弹出浏览器//设置好使用ChromeDriver使用ChromeDriver driver new ChromeDriver(); driver.get(https://www.jianshu.com/u/a2b05c68b03b);//设置浏览器弹窗页面的大小driver.manage().window().maximize();//使用getScreenshotAs进行截取屏幕File srcFile driver.getScreenshotAs(OutputType.FILE); FileUtils.copyFile(srcFile, new File(G:\\pyChar\\jj.png)); 长截屏//配置本地的chromediver.exe谷歌的内核System.setProperty(webdriver.gecko.driver, C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe);//设置ChromeOptions打开方式设置headless不弹出浏览器ChromeOptions options new ChromeOptions();options.addArguments(headless);//设置好使用ChromeDriver使用ChromeDriver driver new ChromeDriver(options); //获取要截图的地址注需要先获取地址哦不然下方获取的宽度高度就会是弹窗的高和宽而不是页面内容的高宽driver.get(https://www.jianshu.com/u/a2b05c68b03b);//获取页面高宽使用return document.documentElement.scrollWidth//Long width (Long)driver.executeScript(return document.documentElement.scrollWidth);// Long height (Long) driver.executeScript(return document.documentElement.scrollHeight);Long width (Long) ((JavascriptExecutor)driver).executeScript(return document.documentElement.scrollWidth);Long height (Long) ((JavascriptExecutor)driver).executeScript(return document.documentElement.scrollHeight);//设置浏览器弹窗页面的大小driver.manage().window().setSize(new Dimension(width.intValue(), height.intValue()));//使用getScreenshotAs进行截取屏幕File srcFile driver.getScreenshotAs(OutputType.FILE); FileUtils.copyFile(srcFile, new File(G:\\pyChar\\jj.png)); 元素截图使用方法WebElement findElementByXPath ToolDriver.findElement(By.xpath(//*[id\s_lg_img\]));File screenshotAs findElementByXPath.getScreenshotAs(OutputType.FILE);String prName src/main/resources/ Toolimg .png;try {FileUtils.copyFile(screenshotAs, new File(prName));} catch (IOException e) {e.printStackTrace();} --全面截图再截图 File src ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); WebElement element driver.findElement(By.xpath(//div[classmsn]));Rectangle rect element.getRect(); BufferedImage subImage ImageIO.read(src).getSubimage(rect.x, rect.y, rect.getWidth(), rect.height); ImageIO.write(subImage, png, src);
http://www.dnsts.com.cn/news/76218.html

相关文章:

  • 杭州手机网站制作电脑公司黑群晖按照wordpress
  • 郑州做网站要多少钱哪个网站可以做社工试题
  • 酒店网站怎么做自媒体平台有哪些
  • 做网站公司官网海门网站开发
  • 北京网站怎么建设广州百度快速优化排名
  • 网站开发与应用论文开办网络公司
  • 景区网站策划书有需要做网站的吗
  • 大兴网站开发网站建设宝安中心区新楼盘
  • 广渠路网站建设优易建站终身用一些难以发现的网站
  • 网站被黑客入侵怎么办北京网站建设厂家
  • 大理州建设局投诉网站湘潭网站建设设计
  • 郴州网站建设价格网络营销是干什么的啊
  • 闵行交大附近网站建设企业网站的缺点
  • 平台网站 备案吗ppt做书模板下载网站
  • 网站设计技术文章唯尚广告联盟
  • 简洁的网站深圳公司注册开户
  • 航空网站建设网页美工设计课程
  • 用wix做网站需要备案吗找人做一个网站需要花多少钱
  • 新网站建设 英文翻译iis网站正在建设中
  • 网站建设攻略咸鱼之王小程序
  • 什么网站最好替别人做网站
  • 西安北郊网站建设wordpress oop
  • 建筑业资质查询网站帮别人做彩票网站犯法嘛
  • 站长之家端口扫描高密住房和城乡建设厅网站
  • 学做网站赚钱方法浅谈网站建设的目的和意义
  • 舟山网站建设规模以上工业企业个数
  • 网页设计主题内容百度seo排名在线点击器
  • 海东网站建设公司win2008怎么做网站
  • 付公司制作网站费怎么做凭证企业查询app 哪个好用
  • 做网站人员工资wordpress更新后图片不显示