前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何解决爬虫程序返回429

如何解决爬虫程序返回429

作者头像
小白学大数据
发布2024-06-08 17:30:25
1380
发布2024-06-08 17:30:25
举报
文章被收录于专栏:python进阶学习

作为爬虫,在采集数据的过程中我们会遇到很多的状态码,不同的状态码代表不同的意思。那么我们今天就重点来了解下爬虫程序返回429意味着什么? 我们就以淘宝为例进行分析,淘宝的反爬机制大家都懂,不是一般的严格,挂代理是最基本的要求。但是也需要配合更多的反爬策略一起进行才能有理想的效果。我们先来展示下访问淘宝的代码示例。 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 = “u6887.b70.tp.16yun”; private static final int PROXY_PORT = 31111;

代码语言:javascript
复制
public static void main(String[] args) {
    HttpClient client = new HttpClient();
    HttpMethod method = new GetMethod("https://www.taobao.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();
    }
}

} HttpClient4.x JSoup JSoup全局代理 Connection Htmlunit Okhttp 在我们挂上代理访问淘宝的时候就返回了超级多的429,如图:

在这里插入图片描述
在这里插入图片描述

虽然我们挂的代理高达80并发但是请求还是比较多,超出了并发量,所以几乎都是返回的429。 这是HTTP\HTTPS的标准应答模式 ,面对这样的情况我们只有降低程序的并发请求,或者增加更大的并发量。如果不改变就会导致代理通道堵塞,访问的效果就会更差。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档