日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2024/3/12 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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() {?@Overridepublic 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,并打印或進行后續數據處理操作。

總結

以上是生活随笔為你收集整理的Java okhttp 实现对有道翻译的爬取的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。