QQ空间批量删除留言

删除qq空间的留言。操作多了容易

{
    "code":-4012,
    "subcode":512,
    "message":"操作过于频繁咯!休息会再来操作吧!",
    "notice":0,
    "time":1611556467,
    "tips":"9A7C-0",
    "data":{}
}

我的是删了几百条就频繁了。

package com.demo.demo;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.apache.commons.lang.StringUtils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * @author: c
 * @create: 2021/01/25
 * @description:
 **/
public class Test {
    private static String cookie = "你的cookie";


    public static void main(String[] args) {
        int start = 214;
        for (int i = start;i > 1 ; i--){
            getList(i);
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }

    }

    
    public static void getList(int start){

        String url ="https://user.qzone.qq.com/proxy/domain/m.qzone.qq.com/cgi-bin/new/get_msgb";
        Map<String,String > map = new HashMap<String, String>();
        map.put("uin","");//qq号
        map.put("hostUin","");//qq号
        map.put("num","10");
        map.put("start",start + "0"  );
        map.put("hostword","0");
        map.put("essence","1");
        map.put("r","0.3180397351938269");
        map.put("iNotice","0");
        map.put("inCharset","utf-8");
        map.put("outCharset","utf-8");
        map.put("format","jsonp");
        map.put("ref","qzone");
        map.put("g_tk","979031278");
        map.put("g_tk","979031278");
        String result = sendGet(url, map );
        result = result.replace("_Callback(","").replace(");","");
        JSONObject jsonObject = JSONObject.parseObject(result);
        JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("commentList");
        String idList = "";
        String uinList = "";
        for (int i = 0 ; i< jsonArray.size();i ++){
            JSONObject jsonObject1 = jsonArray.getJSONObject(i);
            idList = idList + jsonObject1.getString("id") + ",";
            uinList = uinList + jsonObject1.getString("uin") + ",";
        }

        Map<String,String > param = new HashMap<>();
        param.put("hostUin","");//qq号
        param.put("idList",idList.substring(0,idList.length()-1));
        param.put("uinList",uinList.substring(0,uinList.length() -1 ));
        param.put("format","ts");
        param.put("iNotice","1");
        param.put("inCharset","utf-8");
        param.put("outCharset","utf-8");
        param.put("ref","qzone");
        param.put("json","1");
        param.put("qzreferrer","https://user.qzone.qq.com/proxy/domain/qzs.qq.com/qzone/msgboard/msgbcanvas.html#page=" + (start+1) );
        String urlpost = "https://h5.qzone.qq.com/proxy/domain/m.qzone.qq.com/cgi-bin/new/del_msgb?g_tk=979031278";
        String s = postForm(urlpost, param);
        System.out.println(param.toString());
        System.out.println(idList.substring(0,idList.length()-1));
        System.out.println(uinList.substring(0,uinList.length() -1 ));
        System.out.println(s);
    }











    public static String sendGet(String url, Map<String,String > querys) {
        String result = "";
        BufferedReader in = null;
        StringBuilder sbUrl = new StringBuilder();
        try {
            if (null != querys) {
                StringBuilder sbQuery = new StringBuilder();
                for (Map.Entry<String, String> query : querys.entrySet()) {
                    if (0 < sbQuery.length()) {
                        sbQuery.append("&");
                    }
                    if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {
                        sbQuery.append(query.getValue());
                    }
                    if (!StringUtils.isBlank(query.getKey())) {
                        sbQuery.append(query.getKey());
                        if (!StringUtils.isBlank(query.getValue())) {
                            sbQuery.append("=");
                            sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));
                        }
                    }
                }
                if (0 < sbQuery.length()) {
                    sbUrl.append("?").append(sbQuery);
                }
            }

            String urlNameString = url +  sbUrl;

            URL realUrl = new URL(urlNameString);

            // 打开和URL之间的连接
            URLConnection connection = realUrl.openConnection();
            // 设置通用的请求属性
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("connection", "Keep-Alive");
            connection.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            connection.setRequestProperty("cookie", cookie);
            // 建立实际的连接
            connection.connect();
            // 获取所有响应头字段
            Map<String, List<String>> map = connection.getHeaderFields();
            // 遍历所有的响应头字段
            for (String key : map.keySet()) {
                System.out.println(key + "--->" + map.get(key));
            }
            // 定义 BufferedReader输入流来读取URL的响应
            in = new BufferedReader(new InputStreamReader(
                    connection.getInputStream()));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送GET请求出现异常!" + e);
            e.printStackTrace();
        }
        // 使用finally块来关闭输入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return result;
    }



    public static String postForm(String url, Map<String, String> params){
        String result = "";
        OkHttpClient client = new OkHttpClient.Builder().build();
        FormBody.Builder formbuilder = new FormBody.Builder();
        Iterator<String> it = params.keySet().iterator();
        while (it.hasNext()) {
            String key = it.next();
            formbuilder.add(key, params.get(key));
        }
        FormBody body = formbuilder.build();
        Request request = new Request.Builder().url(url).addHeader(

                "cookie",cookie
        ).addHeader("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)")
                .addHeader("connection","Keep-Alive")
                .addHeader("accept","*/*")
                .post(body).build();
        Response response = null;
        try {
            response = client.newCall(request).execute();
            System.out.println("返回状态码" + response.code() + ",message:" + response.message());
            result = response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }
}

所需pom

  <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.50</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.12</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

猜你喜欢

转载自blog.csdn.net/csl12919/article/details/113112236