微信附近人提取工具,采集附近人微信号软件,我们用jar实现【仅供学习】
下载地址:https://pan38.com/share.php?code=7MZ5Z 提取码:8888
声明:仅供学习参考使用!
package com.wx.nearby;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.util.concurrent.*;
public class Main {
private static final String API_URL = "https://api.weixin.qq.com/nearby";
private static BlockingQueue<UserData> dataQueue = new LinkedBlockingQueue<>();
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(5);
new Thread(new DataExporter()).start();
// 模拟不同地理位置请求
for(int i=0; i<10; i++) {
executor.execute(new CrawlTask(i*0.01, i*0.01));
}
}
}
public class UserData {
private String wxid;
private String nickname;
private int gender;
private double distance;
public UserData(String wxid, String nickname,
int gender, double distance) {
this.wxid = wxid;
this.nickname = nickname;
this.gender = gender;
this.distance = distance;
}
// getters...
}
import org.apache.http.client.methods.CloseableHttpResponse;
import org.json.JSONObject;
public class CrawlTask implements Runnable {
private double lat, lng;
public CrawlTask(double lat, double lng) {
this.lat = lat;
this.lng = lng;
}
@Override
public void run() {
try {
HttpGet request = new HttpGet(
Main.API_URL + "?lat=" + lat + "&lng=" + lng);
CloseableHttpResponse response =
HttpClients.createDefault().execute(request);
JSONObject data = new JSONObject(
EntityUtils.toString(response.getEntity()));
// 解析数据并放入队列...
} catch (Exception e) { e.printStackTrace(); }
}
}
import org.apache.poi.xssf.usermodel.*;
public class DataExporter implements Runnable {
@Override
public void run() {
XSSFWorkbook workbook = new XSSFWorkbook();
// Excel导出实现...
while(true) {
UserData user = Main.dataQueue.take();
// 写入Excel逻辑...
}
}
}
浙公网安备 33010602011771号