Java okhttp 实现对有道翻译的爬取

爬虫的本质:模拟浏览器打开网页,获取网页中我们想要的那部分数据。

爬取之前,先要分析网页获取数据的流程。

网页采取的是post方法,对url地址请求数据。

 

post的内容为form表单, 表单结构如上图。

 服务器接收到请求后发回的响应。

知道了流程,就可以用代码来模拟这个流程。

OkHttpClient okHttpClient = new OkHttpClient();



RequestBody requestBody = new FormBody.Builder()

        .add("i", "快乐")

        .add("doctype","json")

        .build();


Request request = new Request.Builder()

        .header()

        .url("http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule")

        .post(requestBody)

        .build();



Call call=okHttpClient.newCall(request);

call.enqueue(new Callback() {

    @Override

    public void onFailure(Call call, IOException e) {

        e.printStackTrace();

    }

    @Override

    public void onResponse(Call call, Response response) throws IOException {

        result=response.body().string();
        System.out.println(result);

    }


});

OkHttpClient okHttpClient = new OkHttpClient();     创建OkHttpClient对象

RequestBody requestBody = new FormBody.Builder()  创建表单对象,将post表单内的内容放进去,名键“i”对应的键值就是所需翻译的内容。

Request request = new Request.Builder()  创建request对象,

.header内放请求标头,用于让服务器将请求识别为来自标头所对应的浏览器。

.url内放请求网址。

.post()表示以post方式发起请求,省略或.get()都会以get方式发起请求。

.post()括号内存放需要post的内容,此处为表单数据,即前面创建的表单对象。

新建Call对象与Response对象,发起请求并接受返回结果。

返回结果以String形式赋给result,并打印或进行后续数据处理操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值