Erlo

python带你快速了解新能源汽车行业

收藏 2023-01-29 16:37:34   32   小白学大数据
页面报错/反馈
点赞

大家都知道python有很多的用途,但是Python最重要的功能在于数据分析。面对密密麻麻的数字,怎么使用Python来进行数据分析。简单的来理解就是去粗取精。比如最近接到了一个项目,需要我们对新能源汽车行业进行分析的,那么我们会遇到很多问题,比如电动车的续航里程怎么样?每百公里电池消耗情况?主流电动车厂商及厂家分布?结论电动车的续航里程是否可靠等等问题,这里我们就可以利用Python通过某些汽车平台对于市面电动车数据进行数据分析。

针对以上的项目需求,这次爬虫主要爬取某车之家新能源汽车的品牌、车系、车型,用户使用反馈等数据。对于python的步骤之前写了很多文章分享,这里就不详细的梳理步骤了。重点讨论下在爬取过程中网站的反爬机制问题。像汽车之家这样的网站经过网页分析发现反爬不是很严,这里我们只需要加代理防止封IP就可以,但是代理的选择是一个比较难得问题。好用的代理实在太少了,经过博主多次测试对比发现了一家优质的代理商。这里直接使用他们提供的代理去获取需要的数据,代理的使用方式发出来大家参考下,代码示例如下:

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();
        }
    }
}

文中使用的是动态转发模式的代理,相比传统api要方便简单很多,对爬虫项目更友好,感兴趣的小伙伴可以直接搜索亿牛云了解详细的使用方式。


登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认