新浪微博模拟登陆 java

第一篇博客把经历记录下来,最近要做微博模拟登陆,网上找了大量的代码登陆都很繁琐,终于皇天不负有心人,找到了段简单的代码,也学习了。

package us.codecraft.jobhunter;import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;import org.apache.commons.codec.binary.Base64;public class weiboLogin
{public static void main(String[] args) throws Exception {System.err.println("开始登陆,获取tiket");// 设置微博用户名以及密码String ticket = requestAccessTicket("微博账号", "密码");if (ticket != "false") {System.err.println("获取成功:" + ticket);System.err.println("开始获取cookies");String cookies = sendGetRequest(ticket, null);System.err.println("cookies获取成功:" + cookies);System.err.println("开始发送微博");sendWeiBoMessage("java robot by iswin", cookies);System.err.println("发送微博成功");} elseSystem.err.println("ticket获取失败,请检查用户名或者密码是否正确!");}public static String sendGetRequest(String url, String cookies)throws MalformedURLException, IOException {HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();conn.setRequestProperty("Cookie", cookies);conn.setRequestProperty("Referer","http://login.sina.com.cn/signup/signin.php?entry=sso");conn.setRequestProperty("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0");conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");BufferedReader read = new BufferedReader(new InputStreamReader(conn.getInputStream(), "gbk"));String line = null;StringBuilder ret = new StringBuilder();while ((line = read.readLine()) != null) {ret.append(line).append("\n");}StringBuilder ck = new StringBuilder();try {for (String s : conn.getHeaderFields().get("Set-Cookie")) {ck.append(s.split(";")[0]).append(";");}} catch (Exception e) {}return ck.toString();}public static String requestAccessTicket(String username, String password)throws MalformedURLException, IOException {username = Base64.encodeBase64String(username.replace("@", "%40").getBytes());HttpURLConnection conn = (HttpURLConnection) new URL("https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)").openConnection();conn.setDoInput(true);conn.setDoOutput(true);conn.setRequestMethod("POST");conn.setRequestProperty("Referer","http://login.sina.com.cn/signup/signin.php?entry=sso");conn.setRequestProperty("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0");conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");DataOutputStream out = new DataOutputStream(conn.getOutputStream());out.writeBytes(String.format("entry=sso&gateway=1&from=null&savestate=30&useticket=0&pagerefer=&vsnf=1&su=%s&service=sso&sp=%s&sr=1280*800&encoding=UTF-8&cdult=3&domain=sina.com.cn&prelt=0&returntype=TEXT",URLEncoder.encode(username), password));out.flush();out.close();BufferedReader read = new BufferedReader(new InputStreamReader(conn.getInputStream(), "gbk"));String line = null;StringBuilder ret = new StringBuilder();while ((line = read.readLine()) != null) {ret.append(line).append("\n");}String res = null;try {res = ret.substring(ret.indexOf("https:"),ret.indexOf(",\"https:") - 1).replace("\\", "");} catch (Exception e) {res = "false";}return res;}@SuppressWarnings("deprecation")public static String sendWeiBoMessage(String message, String cookies)throws MalformedURLException, IOException {HttpURLConnection conn = (HttpURLConnection) new URL("http://www.weibo.com/aj/mblog/add?ajwvr=6").openConnection();conn.setDoInput(true);conn.setDoOutput(true);conn.setRequestMethod("POST");conn.setRequestProperty("Cookie", cookies);conn.setRequestProperty("Referer","http://www.weibo.com/u/2955825224/home?topnav=1&wvr=6");conn.setRequestProperty("X-Requested-With", "XMLHttpRequest");conn.setRequestProperty("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:34.0) Gecko/20100101 Firefox/34.0");conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");DataOutputStream out = new DataOutputStream(conn.getOutputStream());out.writeBytes("location=v6_content_home&appkey=&style_type=1&pic_id=&text="+ URLEncoder.encode(message)+ "&pdetail=&rank=0&rankid=&module=stissue&pub_type=dialog&_t=0");out.flush();out.close();BufferedReader read = new BufferedReader(new InputStreamReader(conn.getInputStream(), "gbk"));String line = null;StringBuilder ret = new StringBuilder();while ((line = read.readLine()) != null) {ret.append(line).append("\n");}return ret.toString();}
}

原文出处:http://www.iswin.org/a/40

新浪微博模拟登陆 java相关推荐

  1. python如何实现模拟登录_超详细的Python实现新浪微博模拟登陆(小白都能懂)

    最近由于需要一直在研究微博的爬虫,第一步便是模拟登陆,从开始摸索到走通模拟登陆这条路其实还是挺艰难的,需要一定的经验,为了让朋友们以后少走点弯路,这里我把我的分析过程和代码都附上来. 首先,我们先用正 ...

  2. python新浪微博模拟登陆

    一 一直苦恼于新浪微博API开放的接口限制太多.只能用爬虫获取数据,然后我花了很长时间去找模拟登陆代码,根本没有一个能成功的.于是我就参考了谋篇文章,对代码做了些小修改,终于可以用了. 相关参考可以看 ...

  3. 新浪微博模拟登陆并发文

    通过新浪通行证登陆微博,曲线救国,然后再进行模拟发文 <?php /*$temp = explode(' ',microtime()); $num = floor($temp[0]*1000); ...

  4. Python模拟登陆新浪微博

    本文转自:http://blog.csdn.net/andrewseu/article/details/48730735 前几天想在学校论坛上淘一个二手蓝牙鼠标,没有时间盯着论坛就写了Python程序 ...

  5. 超详细的Python实现百度云盘模拟登陆(模拟登陆进阶) 1

    这是第二篇从简书搬运过来的文章(大家别误会,是我原创的).因为前一篇文章,我看反响还挺好的,所以把这篇也搬运过来了,其实目的还是为宣传自己的分布式微博爬虫(该项目的内容和工作量都很饱满啊,大家如果觉得 ...

  6. Python 模拟登陆百度云盘实战教程

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 今天我给大家讲讲如何模拟登陆百度云盘(该分析过程也适用于百度别的产品,比如模拟登陆百度搜索 ...

  7. 教程 | Python实战 模拟登陆百度云盘

    今天我给大家讲讲如何模拟登陆百度云盘(该分析过程也适用于百度别的产品,比如模拟登陆百度搜索首页,它们的加密流程完全一样,只是提交参数有微小差别). 阅读文章之前,有一些东西需要给大家阐述: 本文并没有 ...

  8. 233网校java_java辅导:使用java模拟登陆考试大

    java辅导:使用java模拟登陆考试大 2009年1月5日来源:233网校网校课程 在线题库评论 分享到 public static void loginexamda() { URL url = n ...

  9. java 模拟登陆exe_Java简单模拟登陆和爬虫实例---博客园老牛大讲堂

    鉴于有人说讲的不清楚,我这里再详细补充一下:更新日期:2017-11-23 本片文章适合初学者,只简单说了一下爬虫怎么用,和一个简单的小实例.不适合你的就可以不看了.----博客园老牛大讲堂 1.什么 ...

最新文章

  1. ios开发返回按钮消失_iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决...
  2. BZOJ 4567 [SCOI2016]背单词 (Trie树、贪心)
  3. NPOI 在指定单元格导入导出图片
  4. 基于tcp connect的端口扫描程序
  5. Docker网络代理配置
  6. 基础编程题目集 7-3 逆序的三位数 (10 分)
  7. IOT(22)---NB-IoT、LoRa产业组织格局
  8. Spring集成CXF发布WebService并在客户端调用
  9. 机器学习---算法---马尔科夫
  10. doapk+java环境_JD-GUI使用方法JD-GUIjava反编译工具下载(支持X64位的系统) v1.5 最新版 - java反编译工具中文下载_数码资源网...
  11. 评价指标(一)精确率,召回率,F1-score
  12. UE4,UE5虚幻引擎源码版下载
  13. Fortran:数组函数详解
  14. 利用相控阵馈源技术提高射电望远镜性能
  15. PHP之微信头像加水印
  16. 低代码(low-code)又又又出圈了
  17. React——react-router-dom V6 使用
  18. 怎样用计算机命令提高网速,cmd指令测试网速技巧
  19. TDSQL 在微信支付数据密集型应用落地实践
  20. Node Pacific专访:做节点需要怎样一种格局?

热门文章

  1. easyexcel导出(冻结固定标题行、自定义合并导出)
  2. 计算机四级考什么好一点,怎样通过计算机四级考试(强力推荐)
  3. Linux的文件系统和软硬链接
  4. 软件测试的职业发展和规划(一)
  5. python Numpy 的基础用法以及 matplotlib 基础图形绘制
  6. c# 蓝牙虚拟串口_C# 虚拟串口通信
  7. 轻量化股票主要使用什么语言编程?
  8. Thread.start()方法解析
  9. vue(9)—— 组件化开发 - webpack(3)
  10. Flutter Text 自动换行