手把手教你做一个新浪博客发布软件JAVA版本(5)--打开博客发布页面并解析博客内容

        前言:很多人用新浪博客引流,但是以前可以用api发布,但是现在已经行不通了,市面上也有诸如新浪博客批量发布软件啦,新浪博客批量发帖啦,新浪博客发布软件啊等等的各种工具,但是小心中枪,一不小心就封号处理了,所以得不偿失,于是乎就想自己写一个,找来找去,找到了目前的方案,完全是程序控制鼠标跟键盘,批量的把博客发布到新浪,但是切记不要急功近利,每天的量一定要控制好,还有时间点什么的,小心被K

         接上一篇,博客的发布页面已经进来了,下一步无疑是开始搞“创作”了,那么内容从哪里来的,这个我就不管了,你可以自己采集(等我把这个连载写完,我抽空介绍下怎么采集),也可以自己整理,最重要的是,要预先把你想发布的东西整理成我想让你整理成的样子,让程序认识,并且知道忘哪里复制。

         开始正题了,这里先说一下,图片的发布是个比较头疼的问题,如果你是直接采集的,那么你可以用人家的图片外链(俗称“盗链”),这个就比较简单了,直接使用源代码方式发布上去就行了,但是如果你是自己批量生成的,那么图片就不好说了,尤其是那种在文章中嵌套的图片。这里发布的图片全在文章最前面,要嘛在文章最后面。想要嵌套在中间比较复杂些,先不做这一步。

 

下面这是excel的模板,跟着这个模板把文章生成好即可:

》》》模板下载传送

解压密码:123456 打开后是这个样子,怎么填都有说明,我就不多bibi了。

手把手教你做一个新浪博客发布软件JAVA版本(5)--打开博客发布页面并解析博客内容_第1张图片

接下来就需要用java程序解析这个excel了,我这里有现成的,可以直接用,有一些jar包需要引入,下面是下载地址。

》》》下载传送 解码密码:123456

 

         判定页面加载完毕用下图:

下面的代码有些多了,可能看起来要花一点时间,不过我都注释好了,应该问题不大。

 

package com.pub;

import java.util.List;

import org.sikuli.script.Screen;

import cn.hutool.poi.excel.sax.Excel07SaxReader;
import cn.hutool.poi.excel.sax.handler.RowHandler;

/**
 * 发布一个博客
 * @author 
 *
 */
public class PubBlog {
	public static void main(String[] args) {
		new PubBlog().doPub();
	}
	
	private void doPub() {
		Excel07SaxReader reader = null ;
		try {
			Screen s = new Screen();
			//打开http://i.blog.sina.com.cn
			Runtime.getRuntime().exec("C:\\Program Files (x86)\\UCBrowser\\Application\\UCBrowser.exe http://i.blog.sina.com.cn/");
//			//用fabowen.png这个图片判断页面是否加载完毕
			s.exists("C:\\Users\\zhouyang\\Desktop\\xt\\fabowen.png", 20);
//			//点击发博文这个地方 
			s.click("C:\\Users\\zhouyang\\Desktop\\xt\\fabowen.png");
//			/**页面准备好,程序开始解析模板excel里的博文内容,下面是用流处理的方式读取的,避免excel过大造成内存溢出
//			 * 主要的发博文的程序逻辑在createRowHandler()方法里
//			 * **/
			reader = new Excel07SaxReader(createRowHandler(s));
			reader.read("C:\\Users\\zhouyang\\Desktop\\xt\\mb.xlsx", 0);
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			
		}
	}
	
	private RowHandler createRowHandler(Screen s) {
		//写一个txt的列表,把已经发布过的文章标题记录下来,可以保持间断发布
		String hasPubTitlePath = "C:\\Users\\zhouyang\\Desktop\\xt\\hasPubTitleList.txt";
	    return new RowHandler() {
	        @Override
	        public void handle(int sheetIndex, int rowIndex, List rowlist) {
	            //Console.log("第[{}]个sheet 第[{}]行,内容是:{}", sheetIndex, rowIndex, rowlist);
	            //解析rowlist,我们只解析前5列,对照模板中的分别是 标题,内容... ...
	            if(rowlist.size() >=5 ) {
	            	//开始取出各个单元格内容
	            	String title = (String) rowlist.get(0);
	            	//过滤到空白的行,避免出现过多的空白内容
	            	if(title.length() < 1) {
	            		//遇到空白的标题就结束
	            		return;
	            	}
	            	//取出内容
	            	String content = (String) rowlist.get(1);
	            	//取出标签
	            	String tags = (String) rowlist.get(2);
	            	//取出分类
	            	String cls = (String) rowlist.get(3);
	            	//取出图片
	            	String pics = (String) rowlist.get(4);
	            	//开始规划写博客了
	            	//用下面的图片检测页面是否加载完毕:
					s.exists("C:\\Users\\zhouyang\\Desktop\\xt\\fabuzhunbei.png", 20);
	            }
	        }
	    };
	}
} 
  


 

上面代码把准备工作做好了,包括标题,内容,图片,下一步就是处理往页面上写的工作了,下一篇继续,我歇会… …

 

你可能感兴趣的:(手把手写新浪博客发布工具)