作者: laical123456
查看: 1406|回复: 1
打印 上一主题 下一主题

[讨论] 抓取微信小程序

[复制链接]
跳转到指定楼层
楼主
laical123456 发表于 2021-6-22 16:46:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看: 1406|回复: 1
如何抓取微信小程序,其实小程序的抓取不是很难,主要解决抓包和如何调试小程序这两个问题。可以采用chrome进行抓取,方便很多。
如果微信小程序抓包抓不到,可能是由于微信版本太高了导致无法抓包。如果版本过高可以采用Fiddler或Charles抓包,这样就能解决抓包问题
只要抓包搞定了,很多小程序也就能抓取了,剩下就是解决IP问题。还有一部分小程序在前端有反爬措施,对请求参数加密或混淆了,这时候需要解决小程序的调试方案了。
微信小程序就相当于一个网站,只不过不能通过浏览器打开。其实浏览器和小程序的构成差不多,小程序里的数据交互也是由javascript来负责的。所以爬虫调试小程序也主要是调试javascript。
我们可以通过代码来进行调试:
[JavaScript] 纯文本查看 复制代码
import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;

import java.io.IOException;

public class Main {
    # 代理服务器(产品官网 www.16yun.cn)
    private static final String PROXY_HOST = "t.16yun.cn";
    private static final int PROXY_PORT = 31111;

    public static void main(String[] args) {
        HttpClient client = new HttpClient();
        HttpMethod method = new GetMethod("https://httpbin.org/ip");

        HostConfiguration config = client.getHostConfiguration();
        config.setProxy(PROXY_HOST, PROXY_PORT);

        client.getParams().setAuthenticationPreemptive(true);

        String username = "16ABCCKJ";
        String password = "712323";
        Credentials credentials = new UsernamePasswordCredentials(username, password);
        AuthScope authScope = new AuthScope(PROXY_HOST, PROXY_PORT);

        client.getState().setProxyCredentials(authScope, credentials);

        try {
            client.executeMethod(method);

            if (method.getStatusCode() == HttpStatus.SC_OK) {
                String response = method.getResponseBodyAsString();
                System.out.println("Response = " + response);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            method.releaseConnection();
        }
    }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播
回复 论坛版权

使用道具 举报

沙发
山水美 发表于 2021-8-11 22:07:37 | 只看该作者
请问楼主,import org.apache.commons.httpclient.Credentials;.....这些引用的资源是免费开源的还是需要付费注册的?我在javascript方面是小白一个。
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-11-25 06:50, Processed in 0.531938 second(s), 28 queries , Gzip On.

快速回复 返回顶部 返回列表