_临时子程序 () 返回 (0
) t =
取启动时间 () 调试输出 (翻译文字 (“browser”))
t =
取启动时间 () - t
调试输出 (t
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
局_网址 | 文本型 | | |
局_提交协议头 | 文本型 | | |
局_返回结果 | 文本型 | | |
局_结果数组 | 文本型 | | 2 |
局_待翻译 | 文本型 | | |
局_翻译结果 | 文本型 | | |
局_待翻译 = 待翻译文本
局_网址 =
“http://elephant.browser.360.cn/?t=translate&i=” + 局_待翻译 +
“&type=AUTO&doctype=text&xmlVersion=1.1&keyfrom=360se&m=youdao”局_提交协议头 =
“Connection: keep-alive” +
#换行符 +
“Referer: http://fanyi.youdao.com/translate” +
#换行符 +
“User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36” +
#换行符 +
“Accept-Language: zh-CN,zh;q=0.8”局_返回结果 =
UTF8到文本 (网页_访问_对象 (局_网址, 0, , , , 局_提交协议头, , , , , , , , , , ,
))
局_结果数组 =
分割文本 (局_返回结果,
“result=”, 2
)
如果 (取数组成员数 (局_结果数组
) = 2
)
局_翻译结果 = 局_结果数组
[2
]
局_翻译结果 =
子文本替换 (局_翻译结果,
“'”,
“'”, , ,
假)
局_翻译结果 =
“翻译失败,请检查被翻译文本是否为空。”返回 (局_翻译结果)|
网页_访问_对象 | 字节集 | |
|
网址 | 文本型 | | | |
访问方式 | 整数型 | | | | 提交信息 | 文本型 | | | | 提交Cookies | 文本型 | | | | 返回Cookies | 文本型 | | | | 附加协议头 | 文本型 | | | | 返回协议头 | 文本型 | | | | 返回状态代码 | 整数型 | | | | 禁止重定向 | 逻辑型 | | | | 字节集提交 | 字节集 | | | | 代理地址 | 文本型 | | | | 超时 | 整数型 | | | | 代理用户名 | 文本型 | | | | 代理密码 | 文本型 | | | | 代理标识 | 整数型 | | | | 对象继承 | 对象 | | | | 是否自动合并更新Cookie | 逻辑型 | | | | 是否补全必要协议头 | 逻辑型 | | | | 是否处理协议头大小写 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
局_访问方式 | 文本型 | | |
局_WinHttp | 对象 | | |
局_发送协议头 | 文本型 | | 0 |
局_返回协议头 | 文本型 | | 0 |
局_计次 | 整数型 | | |
局_网页数据 | 字节集 | | |
局_变体提交 | 变体型 | | |
局_附加协议头 | 文本型 | | |
如果真 (是否为空 (是否自动合并更新Cookie
))

是否自动合并更新Cookie = 真

如果真 (是否为空 (是否补全必要协议头
))

是否补全必要协议头 = 真

如果真 (是否为空 (是否处理协议头大小写
))

是否处理协议头大小写 = 真
线程_初始化COM库 ()
如果真 (访问方式 < 0
或 访问方式 > 8
)
访问方式 = 0
局_访问方式 = 多项选择 (访问方式 + 1, “GET”, “POST”, “HEAD”, “PUT”, “OPTIONS”, “DELETE”, “TRACE”, “CONNECT”, “PATCH”)
判断 (是否为空 (对象继承
))

如果真 (局_WinHttp.
创建 (“WinHttp.WinHttpRequest.5.1”,
) =
假)
返回 ({ })


局_WinHttp = 对象继承

如果真 (超时 ≠ -1
)
如果 (超时 < 1
)

超时 = 15000


超时 = 超时 × 1000
局_WinHttp.方法 (“SetTimeouts”, 超时, 超时, 超时, 超时)
如果真 (代理地址 ≠
“”)
局_WinHttp.
方法 (“SetProxy”, 2, 代理地址
)局_WinHttp.方法 (“Open”, 局_访问方式, 网址, 假)
如果真 (禁止重定向
)
局_WinHttp.
写属性 (“Option”, 6, 0
)
局_WinHttp.
写属性 (“Option”, 4, 13056
) 局_附加协议头 = 附加协议头
如果真 (是否补全必要协议头
)
如果真 (寻找文本 (局_附加协议头,
“Accept:”, ,
真) = -1
)

局_附加协议头 = 局_附加协议头 +
#换行符 +
“Accept: */*”


如果真 (寻找文本 (局_附加协议头,
“Referer:”, ,
真) = -1
)

局_附加协议头 = 局_附加协议头 +
#换行符 +
“Referer: ” + 网址



如果真 (寻找文本 (局_附加协议头,
“Accept-Language:”, ,
真) = -1
)

局_附加协议头 = 局_附加协议头 +
#换行符 +
“Accept-Language: zh-cn”


如果真 (寻找文本 (局_附加协议头,
“User-Agent:”, ,
真) = -1
)

局_附加协议头 = 局_附加协议头 +
#换行符 +
“User-Agent: Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)”


如果真 (访问方式 = 1
)

如果真 (寻找文本 (局_附加协议头,
“Content-Type:”, ,
真) = -1
)


局_附加协议头 = 局_附加协议头 +
#换行符 +
“Content-Type: application/x-www-form-urlencoded”





如果真 (是否处理协议头大小写
)
局_附加协议头 =
网页_处理协议头 (局_附加协议头
)
如果真 (代理地址 ≠
“” 且 代理用户名 ≠
“”)
如果真 (是否为空 (代理标识
))


代理标识 = 1



局_WinHttp.
方法 (“SetCredentials”, 代理用户名, 代理密码, 代理标识
)
如果真 (代理标识 = 1
)

局_WinHttp.
方法 (“SetRequestHeader”,
“Proxy-Authorization”,
“Basic ” +
编码_BASE64编码 (到字节集 (代理用户名 +
“:” + 代理密码
))
)


如果真 (取反 (是否为空 (提交Cookies
))
)
如果真 (取文本长度 (提交Cookies
) > 0
)

如果真 (寻找文本 (提交Cookies,
“Cookie:”, ,
真) ≠ -1
)


提交Cookies =
子文本替换 (提交Cookies,
“Cookie:”,
“”, , ,
假)


局_WinHttp.方法 (“SetRequestHeader”, “Cookie”, 提交Cookies)
判断 (寻找文本 (局_附加协议头,
#换行符, ,
假) = -1
)
局_WinHttp.
方法 (“SetRequestHeader”,
内部_协议头取名 (局_附加协议头
),
内部_协议头取值 (局_附加协议头
))

局_发送协议头 =
分割文本 (局_附加协议头,
#换行符, )
计次循环首 (取数组成员数 (局_发送协议头
), 局_计次
)

如果真 (局_发送协议头
[局_计次
] ≠
“”)


如果真 (内部_协议头取名 (局_发送协议头
[局_计次
]) =
“Connection”)



如果真 (内部_协议头取值 (局_发送协议头
[局_计次
]) =
“keep-alive”)



到循环尾 () 











局_WinHttp.
方法 (“SetRequestHeader”,
内部_协议头取名 (局_发送协议头
[局_计次
]),
内部_协议头取值 (局_发送协议头
[局_计次
]))




计次循环尾 ()
判断 (字节集提交 =
{ })
局_WinHttp.
方法 (“Send”, 提交信息
)
局_变体提交.
赋值 (字节集提交,
)
局_WinHttp.
方法 (“Send”, 局_变体提交
)局_网页数据 = 局_WinHttp.读属性 (“ResponseBody”, ).取字节集 ()返回协议头 = 局_WinHttp.
读文本属性 (“GetAllResponseHeaders”,
)返回状态代码 = 局_WinHttp.
读数值属性 (“Status”,
)局_WinHttp.
读文本属性 (“StatusText”,
)局_返回协议头 =
分割文本 (返回协议头,
#换行符, )返回Cookies =
HeadersToCookie (局_返回协议头
)
如果真 (是否自动合并更新Cookie
)
如果真 (取反 (是否为空 (提交Cookies
))
)

返回Cookies =
网页_Cookie合并更新 (提交Cookies, 返回Cookies
)
局_WinHttp.清除 ()线程_取消COM库 ()返回 (局_网页数据
)|
网页_Cookie合并更新 | 文本型 | |
|
旧Cookie | 文本型 | | | |
新Cookie | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
局_旧Cookie组 | 文本型 | | 0 |
局_新Cookie组 | 文本型 | | 0 |
局_计次 | 整数型 | | |
旧Cookie =
删首尾空 (旧Cookie
)
如果真 (取文本右边 (旧Cookie, 1
) =
“;”)
旧Cookie = 旧Cookie +
字符 ( #空格键 )
新Cookie =
删首尾空 (新Cookie
)
如果真 (取文本右边 (新Cookie, 1
) =
“;”)
新Cookie = 新Cookie +
字符 ( #空格键 )
局_旧Cookie组 =
分割文本 (旧Cookie,
“; ”,
)局_新Cookie组 =
分割文本 (新Cookie,
“; ”,
)
计次循环首 (取数组成员数 (局_旧Cookie组
), 局_计次
)
如果真 (内部_数组成员是否存在1 (局_新Cookie组,
内部_Cookie取名 (局_旧Cookie组
[局_计次
])) =
假)
加入成员 (局_新Cookie组, 局_旧Cookie组
[局_计次
])

计次循环尾 () 旧Cookie =
“”
计次循环首 (取数组成员数 (局_新Cookie组
), 局_计次
)
如果真 (取文本右边 (局_新Cookie组
[局_计次
], 8
) ≠
“=deleted”)

旧Cookie = 旧Cookie + 局_新Cookie组
[局_计次
] +
“; ”

计次循环尾 ()旧Cookie =
取文本左边 (旧Cookie,
取文本长度 (旧Cookie
) - 2
) 旧Cookie =
文本_去重复文本 (旧Cookie,
“; ”)返回 (旧Cookie
)|
HeadersToCookie | 文本型 | |
|
aryHeaders | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
dwCount | 整数型 | | |
dwBegin | 整数型 | | |
dwEnd | 整数型 | | |
szHeaders | 文本型 | | |
i | 整数型 | | |
dwCount =
取数组成员数 (aryHeaders
)
计次循环首 (dwCount, i
)
dwBegin =
寻找文本 (aryHeaders