 
	 博客信息
		博客信息
	前言
上篇文章(HttpClient技术)(今日头条系列)HttpClient模拟今日头条登录中,对于近日的头条的登录方法,已经被我模拟破解了,那么这次就分享一下,如果使用Java HttpClient模拟发布文章,头条中的文章类型,有4中,分别是文字文章,带图片的文章,图集和视频类文章,每一种发布的方式略有不同,今天就先分享,如何使用HttpClient模拟发布纯文字类文章。

步骤和方法
模拟发布,主要是模拟发布的post请求的方法和内容,这些在前面的抓包方法中,都有介绍,先介绍一下使用的语言和工具:
使用语言:Java
使用Jar包: Java HttpClient 4.x核心Jar包
开发工具:MyEclipse 8
    步骤如下:
1 模拟进入发布内容页面
2 获取发布页面需要发布的参数
3 请求post内容,模拟发布
核心代码分享如下:
  //模拟Post请求,发布内容
g3 = new HttpPost("https://mp.toutiao.com/core/article/edit_article_post/?source=mp&type=article") ;
				
g3.setHeader("Accept", "text/javascript, text/html, application/xml, text/xml, */*") ;
g3.setHeader("X-CSRFToken", "undefined") ;
g3.setHeader("X-Requested-With", "XMLHttpRequest") ;
g3.setHeader("Accept-Language", "zh-CN") ;
g3.setHeader("Cache-Control", "no-cache") ;
g3.setHeader("Connection", "Keep-Alive") ;
g3.setHeader("Referer", "https://mp.toutiao.com/profile_v2/publish") ;
g3.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko") ;
g3.setHeader("Content-Type", "application/x-www-form-urlencoded") ;
				
String formatcontent = "<p>"+content+"</p>" ;
List<NameValuePair> qparams = new ArrayList<NameValuePair>();
				
qparams.add(new BasicNameValuePair("article_type","0")); //0 文章
qparams.add(new BasicNameValuePair("title", title));
qparams.add(new BasicNameValuePair("content", formatcontent));
qparams.add(new BasicNameValuePair("claim_origin", "0"));
qparams.add(new BasicNameValuePair("article_ad_type", "2"));
qparams.add(new BasicNameValuePair("add_third_title","0"));
qparams.add(new BasicNameValuePair("recommend_auto_analyse","0"));
qparams.add(new BasicNameValuePair("tag",""));
qparams.add(new BasicNameValuePair("article_label",""));
qparams.add(new BasicNameValuePair("is_fans_article", "0"));
qparams.add(new BasicNameValuePair("govern_forward", "0"));
qparams.add(new BasicNameValuePair("push_status", "0"));
qparams.add(new BasicNameValuePair("push_android_title",""));
qparams.add(new BasicNameValuePair("push_android_summary",""));
qparams.add(new BasicNameValuePair("push_ios_summary",""));
qparams.add(new BasicNameValuePair("timer_status", isImediate? "0" : "1")); //0立刻发送 1 定时发送
qparams.add(new BasicNameValuePair("timer_time", publishTime)); // 必须24小时之内
qparams.add(new BasicNameValuePair("column_chosen", "0"));
qparams.add(new BasicNameValuePair("pgc_id", "0"));
qparams.add(new BasicNameValuePair("pgc_feed_covers","[]"));
qparams.add(new BasicNameValuePair("from_diagnosis","0"));
qparams.add(new BasicNameValuePair("save","1"));
				
UrlEncodedFormEntity params = new UrlEncodedFormEntity(qparams, "UTF-8");
g3.setEntity(params);
				
response2 = httpClient.execute(g3);
sg1 = EntityUtils.toString(response2.getEntity(),"utf-8") ;
sg1 = StringRandomUtils.unicodeToString(sg1) ; 
System.out.println(sg1);总结:
相信分享完整套的头条从登陆,到文章的自动发布流程后,以后发布文章,就可以通过模拟工具在后台进行发布了。如果有全部主流网站的登录和发布的流程,那么一篇文章,就可以很容易的发布到新浪微博,今日头条,腾讯微博,喜马拉雅,蜻蜓等主流自媒体网站了,这样一个平台的前景是很可观的了,当然了,Java爬虫和批量自动化操作的技术难度,也是非常大的了。
好了,这里说多了,有些跑题,后面会继续分享如何发布带图片的,图集和视频的文章,谢谢大家关注。
 评论信息
		评论信息    
		
	 发表评论
		发表评论
	 博主信息
					博主信息
				 【蝴蝶效应-虎】
					
					【蝴蝶效应-虎】
					 按日志日期
					按日志日期
				 友情链接
					友情链接