根据URL生成该网页的长截屏,并发送数据到邮箱


前言

工作中领导提出的需求,也是查阅了许久,特此记录。


一、根据网址生成该网页的长截图

1.引入库

这里采用selenium网页自动化测试工具,采用核心功能AShot实现

需要依赖有

<dependency>
  <groupId>ru.yandex.qatools.ashot</groupId>
  <artifactId>ashot</artifactId>
  <version>1.5.4</version>
</dependency>

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-java</artifactId>
  <version>4.0.0-alpha-3</version>
</dependency>

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-remote-driver</artifactId>
  <version>4.0.0-alpha-3</version>
</dependency>

同时还需要下载 chromedriver.exe,并根据该下载存放的路径进行配置

2.代码

 public static void main(String[] args) {
        // TODO Auto-generated method stub
        WebDriver driver;
        System.setProperty( "webdriver.chrome.driver" , "D:/chromedriver.exe" );
        driver= new ChromeDriver();
        driver.manage().timeouts().implicitlyWait( 60, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        driver.get( "https://nba.hupu.com/" );              //take screenshot of the entire page
        Screenshot screenshot= new AShot().shootingStrategy(ShootingStrategies.viewportPasting( 1000 )).takeScreenshot(driver);
        try {
            ImageIO.write(screenshot.getImage(), "jpg" , new File("D:/test.jpg"));//截图存放路径
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        driver.quit();
    }

根据url获取网页长截图:
在这里插入图片描述

二、发送数据到邮箱

1.引入库

需要导入mail.jar

2.代码

代码如下(示例):

public class EmailUtil {
	private static EmailUtil eu = new EmailUtil();

	public static EmailUtil getInstance() {
		return eu;
	}

	private EmailUtil() {

	}

	public void send(String email, String content1, String subject) throws MessagingException {
		Properties props = new Properties();
		props.setProperty("mail.smtp.auth", "true");
		props.setProperty("mail.transport.protocol", "smtp");
		Session session = Session.getInstance(props, null);
		try {
			if (checkEmail(email)) {
				Message msg = new MimeMessage(session);
				msg.setFrom(new InternetAddress("[email protected]"));
				msg.setRecipients(RecipientType.TO, InternetAddress.parse(email));
				msg.setSubject(subject);
				Multipart msgPart = new MimeMultipart("mixed");
				msg.setContent(msgPart);
				MimeBodyPart body = new MimeBodyPart(); 
				msgPart.addBodyPart(body);
				Multipart contentPart = new MimeMultipart("related");
				body.setContent(contentPart);
				MimeBodyPart content = new MimeBodyPart();
				contentPart.addBodyPart(content);
				content.setContent(content1, "text/html;charset=utf-8");
				msg.setContent(contentPart);
				msg.saveChanges();
				Transport trans = session.getTransport();
				trans.connect("smtp.qiye.163.com", "[email protected]", "xxxxx");
				trans.sendMessage(msg, msg.getAllRecipients());
				trans.close();
			} else {
				System.out.println("邮箱格式错误!");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 验证邮箱
	public boolean checkEmail(String email) {
		String regex = "^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$";
		return email.matches(regex);
	}

}

总结

该文章仅单单介绍该主题所涉及的核心代码及工具,仅供自学记录。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>