使用Java程序自动发布百度空间文章
因为需要用百度空间记录一些东西,但是家里网速又十分慢,只好用程序代替手动发布。
下面是我写的代码,供大家参考,需要说明两点
1:HttpToolkitImpl类是我自己写的一个Http请求相应工具包,因为还有很多地方要完善,所以还没发布,大家可以根据自己的需求编写一些能实现对应要求的类,下面直粘贴代码
2:cookie我都是使用firefox的HttpFox插件抓取的,很多类似的软件,大家可以更具自己使用习惯使用(HttpWatch,HttpAnalyzer)
package test;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.codeif.commons.impl.HttpToolkitImpl;
/**
* 自动向百度空间写文章
* @author codeif
*/
public class Baidu {
public static void main(String[] args) {
String spaceName = "百度空间名";
String cookie = "登陆空间后抓取百度空间的cookie";
String title = "文章题目";
String content = "文章内容";
new Baidu().postBlog(spaceName, cookie, title, content);
}
/**
* @param spaceName 空间名称
* @param cookie 登陆后的cookie
* @param title 文章题目
* @param content 文章内容
*/
public void postBlog(String spaceName,String cookie, String title, String content) {
String url = "http://hi.baidu.com/"+spaceName+"/creat/blog/"; //用于获取bdstoken
String res = new HttpToolkitImpl().get(url, cookie);
Pattern p = Pattern.compile("bdstoken=([0-9a-z]+)\\W");
Matcher m = p.matcher(res);
String bdstoken = null;
if(m.find()){
bdstoken = m.group(1);
}else{
System.out.println("cookie过期,请重新抓取cookie");
System.exit(0);
}
Map map = new LinkedHashMap();
map.put("bdstoken", bdstoken);
map.put("ct", "1");
map.put("cm", "1");
map.put("spBlogID", "");
map.put("spBlogCatName_o", "");
map.put("edithid", "");
map.put("spBlogTitle", title);
map.put("spBlogText", content);
map.put("spBlogCatName", "默认分类");
map.put("spBlogPower", "0");
map.put("spIsCmtAllow", "1");
map.put("spShareNotAllow", "0");
map.put("spVcode", "");
map.put("spVerifyKey", "");
new HttpToolkitImpl().post("http://hi.baidu.com/taoduanzi/commit", map, cookie);
System.out.println("发布文章完成");
}
}
原文:http://www.codeif.com/topic/461
» 本文链接:https://blog.apires.cn/archives/632.html
» 转载请注明来源:Java地带
» 《使用Java程序自动发布百度空间文章》
» 本文章为Java地带整理创作,欢迎转载!转载请注明本文地址,谢谢!
» 部分内容收集整理自网络,如有侵权请联系我删除!
» 订阅本站:https://blog.apires.cn/feed/