在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

使用JAVA发送新浪微博(非调用新浪API)

2017-2-7 13:42| 发布者: zhangjf| 查看: 431| 评论: 0

摘要: 没有调用新浪的API,在程序中加入自己的帐号和密码就能发送微博,代码完全在后台运行,不用打开浏览器。 用了HtmlUnit这个库来模拟登录还有发送微博。 先上效果图: 这个是刚登陆上获取第一页的信息。 发送 ...

没有调用新浪的API,在程序中加入自己的帐号和密码就能发送微博,代码完全在后台运行,不用打开浏览器。

用了HtmlUnit这个库来模拟登录还有发送微博。

先上效果图:

这个是刚登陆上获取第一页的信息。

 使用JAVA发送新浪微博(非调用新浪API)

发送微博:

 使用JAVA发送新浪微博(非调用新浪API)

 使用JAVA发送新浪微博(非调用新浪API)

没什么难的地方,找到相应的按钮和文本域,然后点击,简单说就是用代码模仿用户的操作。

  1. public class weibo {
  2. public static void main(String args[]) throws FailingHttpStatusCodeException, MalformedURLException, IOException, InterruptedException{
  3. //新浪微博登录页面
  4. String baseUrl = "https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=http%3A%2F%2Fm.weibo.cn%2F";
  5. //打开
  6. WebClient webClient = new WebClient(BrowserVersion.CHROME);
  7. webClient.addRequestHeader("User-Agent", "Mozilla/5.0 (iPad; CPU OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53");
  8. //webClient.addRequestHeader("User-Agent", "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile Safari/537.36");
  9. HtmlPage page = webClient.getPage(baseUrl);
  10. //等待页面加载
  11. Thread.sleep(1000);
  12. //获取输入帐号的控件
  13. HtmlInput usr = (HtmlInput) page.getElementById("loginName");
  14. usr.setValueAttribute("Your Account");
  15. //获取输入密码的控件
  16. HtmlInput pwd = (HtmlInput) page.getElementById("loginPassword");
  17. pwd.setValueAttribute("Your Password");
  18. //点击登录
  19. DomElement button = page.getElementById("loginAction");
  20. page =(HtmlPage) button.click();
  21. //等待页面加载
  22. Thread.sleep(1000);
  23. //获取到“写微博”这个按钮,因为这个按钮没有name和id,获取所有<a>标签
  24. DomNodeList<DomElement> button2 = page.getElementsByTagName("a");
  25. //跳转到发送微博页面
  26. page =(HtmlPage)button2.get(4).click();
  27. //等待页面加载
  28. Thread.sleep(1000);
  29. //获取发送控件 标签为<a>中的2个
  30. DomNodeList<DomElement> button3 = page.getElementsByTagName("a");
  31. //获取文本宇
  32. HtmlTextArea content =(HtmlTextArea) page.getElementById("txt-publisher");
  33. DomElement fasong = button3.get(1);
  34. content.focus();
  35. Date date = new Date();
  36. //填写你要发送的内容
  37. content.setText("使用JAVA发送微博!!!!n"+date);
  38. //改变发送按钮的属性,不能无法发送
  39. fasong.setAttribute("class", "fr txt-link");
  40. //发送!!!
  41. page = (HtmlPage)fasong.click();
  42. Thread.sleep(5000);
  43. System.out.println(page.asText());
  44. }
  45. }
复制代码

来自:http://www.cnblogs.com/wzben/p/5040353.html

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-9 10:02

Copyright 2015-2025 djqfx

返回顶部