Java okhttp 实现对有道翻译的爬取
生活随笔
收集整理的這篇文章主要介紹了
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 实现对有道翻译的爬取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于PHP的公共课考勤管理系统设计与实现
- 下一篇: 数据湖常用查询优化技术