使用java代码批量删除新浪微博

java

首先开骂,新浪微博@#@!,不经我同意就转发各种微博,制造垃圾,还不提供微博批量删除功能,摆明了的流氓行为,可耻可恨,遭人唾弃!

SSLClient.java

import org.apache.http.conn.ClientConnectionManager;

import org.apache.http.conn.scheme.Scheme;

import org.apache.http.conn.scheme.SchemeRegistry;

import org.apache.http.conn.ssl.SSLSocketFactory;

import org.apache.http.impl.client.DefaultHttpClient;

import javax.net.ssl.SSLContext;

import javax.net.ssl.TrustManager;

import javax.net.ssl.X509TrustManager;

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

public class SSLClient extends DefaultHttpClient {

public SSLClient() throws Exception {

super();

SSLContext ctx = SSLContext.getInstance("TLS");

X509TrustManager tm = new X509TrustManager() {

@Override

public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

}

@Override

public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {

}

@Override

public X509Certificate[] getAcceptedIssuers() {

return null;

}

};

ctx.init(null, new TrustManager[]{tm}, null);

SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

ClientConnectionManager ccm = this.getConnectionManager();

SchemeRegistry sr = ccm.getSchemeRegistry();

sr.register(new Scheme("https", 443, ssf));

}

}

WeiboTest.java

import org.apache.http.HttpResponse;

import org.apache.http.NameValuePair;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.message.BasicNameValuePair;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

public class WeiboTest {

public static final String url = "https://weibo.com/aj/mblog/del?ajwvr=6";

public static final String charset = "utf-8";

public static void main(String[] args) throws Exception {

/**

* sina_weibo.txt由微博页面F12获得格式是

* <div node-type="feed_list">

* <div action-type="feed_list_item"></div>

* <div action-type="feed_list_item"></div>

* <div action-type="feed_list_item"></div>

* <div action-type="feed_list_item"></div>

* <div action-type="feed_list_item"></div>

* ...

* </div>

*/

File file = new File("C:\\Users\\Nihaorz\\Desktop\\sina_weibo.txt");

BufferedReader br = new BufferedReader(new FileReader(file));

StringBuffer sb = new StringBuffer();

String str;

while ((str = br.readLine()) != null) {

sb.append(str).append("\n");

}

System.out.println(sb);

br.close();

Document doc = Jsoup.parseBodyFragment(sb.toString());

Element body = doc.body();

Elements elements = body.select("div[action-type='feed_list_item']");

Iterator<Element> it = elements.iterator();

HttpPost httpPost = new HttpPost(url);

addHeader(httpPost);

while (it.hasNext()) {

Element element = it.next();

String mid = element.attr("mid");

System.out.println(mid);

execute(httpPost, mid);

}

}

private static void execute(HttpPost httpPost, String mid) throws Exception {

HttpClient httpClient = new SSLClient();

//设置参数

List<NameValuePair> list = new ArrayList<NameValuePair>();

Map<String, String> map = new HashMap<String, String>();

map.put("mid", mid);

Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();

while (iterator.hasNext()) {

Map.Entry<String, String> elem = iterator.next();

list.add(new BasicNameValuePair(elem.getKey(), elem.getValue()));

}

if (list.size() > 0) {

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list, charset);

httpPost.setEntity(entity);

}

HttpResponse resp = httpClient.execute(httpPost);

System.out.println(resp);

}

private static void addHeader(HttpPost httpPost) {

httpPost.addHeader("Accept", "*/*");

httpPost.addHeader("Accept-Encoding", "gzip, deflate, br");

httpPost.addHeader("Accept-Language", "zh-CN,zh;q=0.9");

httpPost.addHeader("Connection", "keep-alive");

httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");

/**

* 设置自己的cookie

*/

httpPost.addHeader("Cookie", "***");

httpPost.addHeader("Host", "weibo.com");

httpPost.addHeader("Origin", "https://weibo.com");

httpPost.addHeader("Referer", "https://weibo.com/1864722372/profile?rank=1&is_all=1");

httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36");

httpPost.addHeader("X-Requested-With", "XMLHttpRequest");

}

}

以上是 使用java代码批量删除新浪微博 的全部内容, 来源链接: utcz.com/z/393944.html

回到顶部