风哥教程

培训 . 交流 . 分享
Make progress together!

python采抓取app数据

[复制链接]
内容发布:suger| 发布时间:2021-7-5 16:29:08
最近大家一直在关注滴滴的相关消息,相信大家或多或少都有了解。一方面是大家发现打车现在已经离不开滴滴,滴滴的影响力已经不知不觉超乎我们的预期;另一方面就是比较敏感的用户网络隐私安全。滴滴作为目前国内领头的打车服务提供商,对中国互联网业务延伸拓宽是有积极作用的,这一点毋庸置疑,但是随着影响力加大,市场垄断、信息不规范获取的问题也突显出来。
和pc 端数据一样,移动端的数据也是可以抓取的,那么App数据好抓取吗?只要是数据获取肯定有难有易的。对于app数据来说,简单的就是app的数据比web端数据更容易抓取,基本都是http、https协议,返回的数据格式也相对规整。那困难的也是真的很困难,需要掌握的技能比较多,比如app逆向、app脱壳、破解加密等。app抓取和网页一样也是会需要反爬的,所以基本的加代理,研究反爬策略也是必须的。
部分抓取app代码分享:
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://www.xiaohongshu.com/");        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();        }    }}
通过以上示例我们可以抓取App中流经的网络数据包,捕获原始的数据,如果我们可以分析得到请求的URL和参数的规律,直接用程序模拟即可批量抓取,这当然最好不过了。但是随着技术的发展,App接口往往会带有密钥,我们并不能直接找到这些规律,所以我们需要学习更多的技术。





上一篇:关于java爬虫和爬虫代理使用方式
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门文章教程

  • 风哥Oracle数据库巡检工具V1.0(附2.6网页
  • 实战PHP与MySQL权威指南PDF电子书下载
  • 大数据技术与应用入门培训教程(电子版下载
  • Oracle 12cR2 九大新功能全面曝光_详解云数
  • Oracle OCP认证考试IZ0-053题库共712题数据
  • MySQL5权威指南(第3版)PDF电子版下载
快速回复 返回顶部 返回列表