用Robot给指定微信好友发送Jsoup从网上爬虫得到的内容

1.Demo.class,其中for循环表示向指定好友发送几次消息

package com.xinzhi;

import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import java.util.Random;

/**
 * 虹猫第一天的教学内容
 */
public class Demo {

    public static void main(String[] args) throws Exception {
        // 我需要一个40*40的窗口
        // 创建窗口对象,JFrame是窗口的意思
        // 类  对象       类     对象从类里面来,类是一系列对象的集合,方法是行为和功能
        /*
        JFrame jf = new JFrame();
        jf.setSize(40,40);
        jf.show();

        // 新建随机对象
        Random random = new Random();
        // 得到0-99任一的整数
        int a = random.nextInt(100);
        System.out.println(a);
        */

        // 桌面对象
        Desktop d = Desktop.getDesktop();
        // 打开文件路径,微信
        d.open(new File("C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe"));

        // 机器人对象
        // Robot()报红,在psvm上添加异常即可
        Robot robot = new Robot();
        // 延时2秒
        robot.delay(2000);

        // 搜索好友 Ctrl + F
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_F);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_F);



        // 将文其二字粘贴至搜索栏
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        Transferable name = new StringSelection("文其");
        clipboard.setContents(name,null);
        // 粘贴
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        // 释放粘贴
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_V);
        robot.delay(1000);
        // 进入
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.delay(1000);


        for (int i = 0; i < 2; i++) {

            // 剪切板 创建剪切板
            Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
            // 创建剪切板能放入的内容
            Transferable text = new StringSelection(Demo1.getMessage() + "\n------此为程序作业,如有打扰请见谅");
            // 把内容放进剪切板
            clip.setContents(text,null);

            robot.delay(3000);
            // 复制粘贴
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            // 延时
            robot.delay(1000);
            // 释放掉复制粘贴
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_V);
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
        }
    }

}

2.Demo.class,用爬虫在网上抓取消息,设定随机数,发送的消息为抓取到的段落集合内的随机段落

package com.xinzhi;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


import java.util.ArrayList;
import java.util.Random;


public class Demo1 {
    public static String getMessage() throws Exception{
        // jsoup爬虫
        Document doc =  Jsoup.connect("http://www.ruiwen.com/wenxue/juzi/381450.html").get();
        System.out.println(doc.title());
        Elements e = doc.select("body > div.main > div.main-left > div.article > div.content > p").select("p");


        // 把获取的所有内容存入集合
        // char字符
        ArrayList<String> li = new ArrayList<>();
        for (Element element :e){
            li.add(element.text());
        }
        Random r = new Random();
        return li.get(r.nextInt(li.size()));

    }
}

 

上一篇:关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot'


下一篇:robot framework详解