Naver韩语词典/英语词典搜索工具_v1.01_20220708

分发“Naver韩语词典/英语词典搜索工具_v1.01_20220708”并纠正了一个错误。

下面的文章总结了 Naver 韩语和英语词典搜索工具的概要以及它们的使用方法。

Naver韩语词典/英语词典搜索工具概述

今天 (2022-07-08) 发布了以下评论。

https://prodtool.tistory.com/28#comment9159871

#ToDo:审核是否更改评论链接

네이버 국어사전/영어사전 검색 도구 오류 신고 댓글
Naver韩语词典/英语词典搜索工具报告错误

检查后,我收到以下错误消息:

네이버 국어사전/영어사전 검색 도구 오류 메시지
Naver 韩语词典/英语词典搜索工具错误消息

当我检查 Fiddler 时,响应为空。

Fiddler로 확인: No Response Body
Naver 韩语词典/英语词典搜索工具 Fiddler:无响应正文

服务器上似乎添加了一些条件。如果不满足该条件,它似乎不会给出响应。

如果您在 Web 浏览器中搜索,通常会收到 json 格式的响应。

웹 브라우저 Fiddler로 확인: Response Body 있음
使用网络浏览器 Fiddler 检查:存在响应主体

正常响应的Request头中有Referer。

为了以防万一,我添加了 Referer 标头。(modUtil.GetDataFromURL 第 36 行)

Option Explicit

Function GetDataFromURL(strURL, strMethod, strPostData, Optional strCharSet = "UTF-8")
  Dim lngTimeout
  Dim strUserAgentString
  Dim intSslErrorIgnoreFlags
  Dim blnEnableRedirects
  Dim blnEnableHttpsToHttpRedirects
  Dim strHostOverride
  Dim strLogin
  Dim strPassword
  Dim strResponseText
  Dim objWinHttp
  lngTimeout = 59000
  strUserAgentString = "http_requester/0.1"
  intSslErrorIgnoreFlags = 13056 ' 13056: ignore all err, 0: accept no err
  blnEnableRedirects = True
  blnEnableHttpsToHttpRedirects = True
  strHostOverride = ""
  strLogin = ""
  strPassword = ""
  Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
  '--------------------------------------------------------------------
  'objWinHttp.SetProxy 2, "xxx.xxx.xxx.xxx:xxxx", "" 'Proxy를 사용하는 환경에서 설정
  '--------------------------------------------------------------------
  objWinHttp.SetTimeouts lngTimeout, lngTimeout, lngTimeout, lngTimeout
  objWinHttp.Open strMethod, strURL
  If strMethod = "POST" Then
    objWinHttp.SetRequestHeader "Content-type", "application/x-www-form-urlencoded; charset=UTF-8"
  Else
    objWinHttp.SetRequestHeader "Content-type", "text/html; charset=euc-kr"
  End If
  If strHostOverride <> "" Then
    objWinHttp.SetRequestHeader "Host", strHostOverride
  End If
  objWinHttp.SetRequestHeader "Referer", "https://ko.dict.naver.com/" '2022-07-08 추가

  objWinHttp.Option(0) = strUserAgentString
  objWinHttp.Option(4) = intSslErrorIgnoreFlags
  objWinHttp.Option(6) = blnEnableRedirects
  objWinHttp.Option(12) = blnEnableHttpsToHttpRedirects
  If (strLogin <> "") And (strPassword <> "") Then
    objWinHttp.SetCredentials strLogin, strPassword, 0
  End If
  On Error Resume Next
  objWinHttp.Send (strPostData)
  objWinHttp.WaitForResponse
  If Err.Number = 0 Then
    If objWinHttp.Status = "200" Then
      'GetDataFromURL = objWinHttp.ResponseText
      GetDataFromURL = BinaryToText(objWinHttp.ResponseBody, strCharSet)
    Else
      GetDataFromURL = "HTTP " & objWinHttp.Status & " " & _
        objWinHttp.StatusText
    End If
  Else
    GetDataFromURL = "Error " & Err.Number & " " & Err.Source & " " & _
      Err.Description
  End If
  On Error GoTo 0
  Set objWinHttp = Nothing
End Function


效果很好!

这个错误的补丁版本(Naver Korean Dictionary/English Dictionary Search Tool_v1.01_20220708)已经上传到github,可以直接从下面的网址下载。

https://github.com/DAToolset/ToolsForDataStandard/raw/main/Naver韩语词典、英语词典搜索工具_v1.01_20220708.xlsm

作为参考,我在github上创建了一个目录,并单独上传了源码。

ToolsForDataStandard/src_Naver 韩语词典、英语词典搜索工具在主DAToolset/ToolsForDataStandard (github.com)


<< 相关文章列表 >>

4 条回复

  1. 头像照片 서희경说道:

    你好。除了取词工具之外,词典检索工具也被用得很好。
    但我发现了一件事。
    我通过将 premium 输入为 premium 进行搜索,结果返回了 premium 的结果。
    我正在检测拼写错误以及附加含义...这就是结果 ^^;;

    当你在 Naver Dictionary 中搜索这个词时,它似乎会自动转换拼写错误并给出结果,但最好只吐出完全匹配的情况...... (当然,有一个选项叫‘完全匹配’^^;;)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

zh_CN简体中文