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

单页面网站如何seo做淘宝网站用什么软件有哪些

单页面网站如何seo,做淘宝网站用什么软件有哪些,百度 网站移动适配,网站域名商代理商目录 技术栈 核心代码实现 1. 邮件发送任务类 2. CSDN博客爬取任务 3. 主程序入口 4.运行效果 关键技术点 1. Jsoup网页解析 2. QQ邮箱SMTP配置 3. 多线程邮件发送 4. 定时任务调度 本篇博客将介绍如何使用Java实现一个自动化系统,定时爬取CSDN博客内容&…

目录

技术栈

核心代码实现

1. 邮件发送任务类

2. CSDN博客爬取任务

3. 主程序入口

4.运行效果

关键技术点

1. Jsoup网页解析

2. QQ邮箱SMTP配置

3. 多线程邮件发送

4. 定时任务调度


        本篇博客将介绍如何使用Java实现一个自动化系统,定时爬取CSDN博客内容,并通过QQ邮箱自动发送到指定邮箱。这个系统结合了多线程、定时任务、网络爬虫和邮件发送等技术。

技术栈

  • Jsoup: 用于网页内容爬取和解析

  • Hutool: 提供邮件发送工具类

  • Java多线程: 实现异步邮件发送

  • Java定时任务: 实现定时爬取功能

  • QQ邮箱SMTP服务: 用于发送邮件

核心代码实现

1. 邮件发送任务类

package com.javamail1;import java.security.GeneralSecurityException;import com.sun.mail.util.MailSSLSocketFactory;import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.mail.MailAccount;
import cn.hutool.extra.mail.MailUtil;public class MailRunnable implements Runnable {String title;String link;String content;String date;String num;public MailRunnable(String title, String link, String content, String date, String num) {this.title = title;this.link = link;this.content = content;this.date = date;this.num = num;}@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.println(Thread.currentThread().getName() + "准备发送邮件....");try {// 构建一个邮件的MailAccount对象, 构建邮件账户配置MailAccount mailAccount = new MailAccount();mailAccount.setSslEnable(true);MailSSLSocketFactory mss = new MailSSLSocketFactory("TLSv1.2");// 信任所有的hostmss.setTrustAllHosts(true);mailAccount.setCustomProperty("mail.smtp.ssl.socketFactory", mss);// 设置QQ邮箱SMTP配置mailAccount.setHost("smtp.qq.com");mailAccount.setPort(465);mailAccount.setAuth(true);mailAccount.setFrom("qq邮箱");mailAccount.setUser("发送者的qq号码");mailAccount.setPass(" "); // 临时授权密码// 发送带附件的HTML邮件MailUtil.send(mailAccount, CollUtil.newArrayList("接收者的qq号码"), "CSDN一叶的博客系列", "<h2>博客信息推送</h2>" +"<p><strong>标题:</strong> " + this.title + "</p>" +"<p><strong>链接:</strong> <a href='" + this.link + "'>" + this.link + "</a></p>" +"<p><strong>内容摘要:</strong> " + this.content + "</p>" +"<p><strong>发布时间:</strong> " + this.date + "</p>" +"<p><strong>阅读量:</strong> " + this.num + "</p>", true, FileUtil.file("d:/c1.jpg"));System.out.println("发送邮件成功....");} catch (GeneralSecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

2. CSDN博客爬取任务

package com.javamail1;import java.util.TimerTask;import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;public class CsdnTask extends TimerTask {static int i = 0;static Elements elements;static {try {// TODO Auto-generated method stubString url = "https://blog.csdn.net/jdsjlzx/article/list/1";// 1.第一步要求判断能不能去爬取这个链接Connection conn = Jsoup.connect(url);System.out.println(conn);// 2.获取这个文档对象Document doc = conn.get();// System.out.println(doc);// 3.获取整合文档doc, 用CSS选择器获取博客列表elements = doc.select(".article-list .article-item-box");} catch (Exception e) {e.printStackTrace();}}@Overridepublic void run() {try {// 获取单条博客信息Element e = elements.get(i);String title = e.select("a").text();String link = e.select("a").attr("href");String  content = e.select(".content").text();String  date = e.select(".date").text();String  num = e.select(".read-num").first().text();System.out.println("一条博客的信息为:"+title+","+link+","+content+","+date+","+num);// 启动线程发送邮件MailRunnable  m =  new MailRunnable(title,link,content,date,num);new Thread(m).start();i++;}catch (Exception e) {}}}

3. 主程序入口

package com.javamail1;import java.util.Random;
import java.util.Timer;public class Test {public static void main(String[] args) {// 创建定时器,随机间隔执行爬取任务Timer t = new Timer();t.schedule(new CsdnTask(), 1 * 1000,  new Random().nextInt(80000));}}

其中用到的Maven依赖有:

<dependency>
         <groupId>cn.hutool</groupId>
         <artifactId>hutool-all</artifactId>
         <version>5.8.38</version>

</dependency>

<dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.18.1</version>
</dependency>

<dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.2</version>

</dependency>

4.运行效果

关键技术点

1. Jsoup网页解析

// 使用CSS选择器精准定位元素
Elements elements = doc.select(".article-list .article-item-box");
String title = e.select("a").text();
String link = e.select("a").attr("href");

2. QQ邮箱SMTP配置

// SSL安全连接配置
mailAccount.setSslEnable(true);
MailSSLSocketFactory mss = new MailSSLSocketFactory("TLSv1.2");
mss.setTrustAllHosts(true);// 邮箱服务器配置
mailAccount.setHost("smtp.qq.com");
mailAccount.setPort(465);
mailAccount.setAuth(true);

3. 多线程邮件发送

// 使用Runnable接口实现多线程
public class MailRunnable implements Runnable {@Overridepublic void run() {// 邮件发送逻辑}
}// 启动线程
MailRunnable  m =  new MailRunnable(title,link,content,date,num);
new Thread(m).start();

4. 定时任务调度

// 使用Timer实现定时任务
Timer t = new Timer();
t.schedule(new CsdnTask(), 1 * 1000, new Random().nextInt(80000));

http://www.dtcms.com/a/467696.html

相关文章:

  • 捕鱼网站建设多用户商城系统哪里有
  • 如何解决 pip install -r requirements.txt 不支持在文件中使用 --user 等命令行选项 问题
  • phpcms网站转移沧州市网站建设价格
  • 建设银行对账网站wordpress漏洞教程
  • 长春市做网站摄影网站知乎
  • 北京微网站制作世界工厂网app
  • 怎样购买起名软件自己做网站百度快速收录开通
  • 网站建设的技术有哪些方面网易企业邮箱手机上登录不了
  • Swift 枚举
  • 网站正在建设中的图片素材制作高端网站公司排名
  • 网站建设 有道翻译学网站建设需要多长时间
  • 手机网站优化排名首页深圳服装外贸网站建设
  • 网站建设常识网站怎么做首页比较好
  • AMOLED 和Min-LED 区别
  • c2c网站架构主机托管业务
  • STM32中printf的重定向详解
  • 网站pv怎么统计c 创建一个网站怎么做
  • 网站建设投福州网络营销推广
  • 绵阳网站定制wordpress qq互联插件
  • 网站建设 更新 维护工程管理咨询公司
  • 什么是手机网站Wordpress自动回复评论
  • 公司做网站 分录沈阳做网站怎样收费
  • 网站文章优化杭州软件开发培训机构
  • 通俗范畴论18 自然变换
  • Ovis多模态大模型
  • 张家口建设部网站wordpress php 中文分词 开源
  • 江苏省教育网站官网推广的网站需要备案吗
  • 万网网站域名多少钱一年学做网站培训 上海
  • 企业网站的管理系统商城型外贸网站建设
  • 建设工程的招标网站有哪些王磊网站建设