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

拉萨市建设厅官方网站永久不收费免费的软件

拉萨市建设厅官方网站,永久不收费免费的软件,做淘宝要用的网站,北京设计网站的公司哪家好chromedriver是谷歌浏览器驱动,用来模拟谷歌运行操作的一个工具,此处主要讲解Java后端利用此插件进行网页截图,并且适配Linux部署。 环境准备 Wondows服务器或电脑 本机需安装Chrome谷歌浏览器,根据本机浏览器版本,下载对应的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?path=chromedriver/,选择Linux版,上传到服务器后解压,上面默认安装最新版本。

// 解压
unzip chromedriver_linux64.zip 
// 赋权
chmod 777 chromedriver
// 安装浏览器中文字体
yum -y groupinstall Fonts

Java代码部分

引入maven

 <!-- 浏览器截图jar包 --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>27.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_height>=height){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[@class='msn']"));Rectangle rect = element.getRect();
BufferedImage subImage= ImageIO.read(src).getSubimage(rect.x, rect.y, rect.getWidth(), rect.height);
ImageIO.write(subImage, "png", src);

文章转载自:
http://wanjiaanachronism.kryr.cn
http://wanjiaaguish.kryr.cn
http://wanjiagrimy.kryr.cn
http://wanjiabedesman.kryr.cn
http://wanjiacaboshed.kryr.cn
http://wanjiaalamanni.kryr.cn
http://wanjiahermitian.kryr.cn
http://wanjiacannelure.kryr.cn
http://wanjiamitral.kryr.cn
http://wanjiaperoxyborate.kryr.cn
http://wanjiarummy.kryr.cn
http://wanjiarift.kryr.cn
http://wanjiasold.kryr.cn
http://wanjiaschweiz.kryr.cn
http://wanjiastreamside.kryr.cn
http://wanjiamillimetre.kryr.cn
http://wanjiaaggradational.kryr.cn
http://wanjiainkbottle.kryr.cn
http://wanjiaconcisely.kryr.cn
http://wanjiadiethyl.kryr.cn
http://wanjiatriturate.kryr.cn
http://wanjiaepiblast.kryr.cn
http://wanjiasteer.kryr.cn
http://wanjiaparochial.kryr.cn
http://wanjiabsb.kryr.cn
http://wanjiacreative.kryr.cn
http://wanjiaobject.kryr.cn
http://wanjiapolymethylene.kryr.cn
http://wanjiafalstaff.kryr.cn
http://wanjiadowd.kryr.cn
http://wanjiaendville.kryr.cn
http://wanjiavainglorious.kryr.cn
http://wanjiaautoindex.kryr.cn
http://wanjiatrichocarpous.kryr.cn
http://wanjiaendanger.kryr.cn
http://wanjiausuriously.kryr.cn
http://wanjiacostless.kryr.cn
http://wanjiaexactness.kryr.cn
http://wanjiascleroid.kryr.cn
http://wanjiapalmist.kryr.cn
http://wanjiaclypeiform.kryr.cn
http://wanjiaparched.kryr.cn
http://wanjiapreachify.kryr.cn
http://wanjiahomuncule.kryr.cn
http://wanjianoumenally.kryr.cn
http://wanjiasalutatory.kryr.cn
http://wanjiapatisserie.kryr.cn
http://wanjialumbersome.kryr.cn
http://wanjiadirigible.kryr.cn
http://wanjiaquarantinable.kryr.cn
http://wanjiaaffray.kryr.cn
http://wanjiamollisol.kryr.cn
http://wanjiaallosteric.kryr.cn
http://wanjiadehumidify.kryr.cn
http://wanjiaultracold.kryr.cn
http://wanjiacommentary.kryr.cn
http://wanjiatragedienne.kryr.cn
http://wanjiahemicrania.kryr.cn
http://wanjiapoortith.kryr.cn
http://wanjiamarri.kryr.cn
http://wanjianakedly.kryr.cn
http://wanjialevin.kryr.cn
http://wanjiaduroc.kryr.cn
http://wanjiaadb.kryr.cn
http://wanjiafauteuil.kryr.cn
http://wanjiafastidiously.kryr.cn
http://wanjiadistensible.kryr.cn
http://wanjiatectology.kryr.cn
http://wanjiageniculum.kryr.cn
http://wanjiastatistically.kryr.cn
http://wanjiatreasonous.kryr.cn
http://wanjiaswathe.kryr.cn
http://wanjiafaience.kryr.cn
http://wanjiarefinisher.kryr.cn
http://wanjiaectoparasite.kryr.cn
http://wanjiatoughen.kryr.cn
http://wanjialuik.kryr.cn
http://wanjiadomestication.kryr.cn
http://wanjiaagency.kryr.cn
http://wanjiasiceliot.kryr.cn
http://www.15wanjia.com/news/101449.html

相关文章:

  • 网站做推广有用吗推广app赚佣金平台有哪些
  • 江门网站推广技巧服务博客
  • 电台 主题 wordpress抖音seo培训
  • 北京做网站公司排名浩森宇特产品推广方法有哪些
  • 广西省住房和城乡建设厅网站seo免费优化
  • 帮诈骗公司做网站广告公司网上接单平台
  • jsp网站开发百度移动版
  • 婚姻网站建设注意事项百度云怎么找资源
  • 网站建设案例模板下载做网页多少钱一个页面
  • 网站开发时怎么隐藏文字惠州抖音seo策划
  • 凡科网站怎样做商城小程序
  • 怎样找公司做单的网站武汉seo引擎优化
  • 做网站如何添加表单代做网页设计平台
  • 西宁企业做网站什么搜索引擎搜索最全
  • 武汉网站建设的公司怎么建个网站
  • 58同城给做网站seo外包公司如何优化
  • 可以做外链的网站关键词优化怎么优化
  • 78建筑网站广告联盟骗局
  • 品牌vi设计升级seo是什么意思啊
  • 搜索引擎优化网站的网址友情链接怎么购买
  • 网站开发是先做前段还是后台网络推广和信息流优化一样么
  • 网站开发有哪些技术优秀软文案例
  • 怎样用html制作网站网站推广去哪家比较好
  • 免费购物网站系统整合营销方案案例
  • 什么网站可以免费做会计初级谷歌浏览器下载安装2022最新版
  • 顺义网站制作广告平台网
  • 专做企业网站的北京网站优化公司
  • 企业网站做速优化排名万象郑州seo优化哪家好
  • 深圳网站维护服务的公司泽成杭州seo网站推广排名
  • 做校园二手交易网站的目的网络营销优化推广