鱼C论坛

 找回密码
 立即注册
查看: 2056|回复: 10

[已解决]为什么用http就可以随便写opener的ip地址都可以运行成功翻译结果

[复制链接]
发表于 2021-6-30 20:02:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import urllib.request
import random
import urllib.request
import urllib.parse
import json
最佳答案
2021-7-1 09:43:39
python 会在运行时检测代理是否有效,无效的话调用本地ip访问,别问我怎么限制python不使用本地ip,问我我也不知道。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-30 20:03:39 | 显示全部楼层
ip_choice ="124.70.155.89:808"
proxy_support = urllib.request.ProxyHandler({'https':ip_choice}) #这里是http时候无论ip_choice写什么 都可以得到翻译结果

opener = urllib.request.build_opener(proxy_support)
opener.addheaders = [('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36')]

urllib.request.install_opener(opener)
try:
    content=input('input something to translate\n')
    data={}
    url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    data['i'] = content
    data['doctype'] = 'json'
    data= urllib.parse.urlencode(data).encode('utf - 8')
   
    req=urllib.request.Request(url)
    response=opener.open(req,data)
    html = response.read().decode('utf-8')
    tgt = json.loads(html)['translateResult'][0][0]['tgt']
    print(tgt)
except urllib.error.URLError:
    print('访问失败')
else:
    print('访问成功')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-30 20:06:43 | 显示全部楼层

ip_choice ="124.70.155.89:808"

proxy_support = urllib.request.ProxyHandler({'https':ip_choice}) #这里是http的话 无论ip_choice写什么都可以得到翻译结果

opener = urllib.request.build_opener(proxy_support)
opener.addheaders = [('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36')]

urllib.request.install_opener(opener)
try:
    content=input('input something to translate\n')
    data={}
    url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    data['i'] = content
    data['doctype'] = 'json'
    data= urllib.parse.urlencode(data).encode('utf - 8')
   
    req=urllib.request.Request(url)
    response=opener.open(req,data)
    html = response.read().decode('utf-8')
    tgt = json.loads(html)['translateResult'][0][0]['tgt']
    print(tgt)
except urllib.error.URLError:
    print('访问失败')
else:
    print('访问成功')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-30 20:07:01 From FishC Mobile | 显示全部楼层
第一,你的问题就没看懂
第二,更不明白那几个import语句和你的问题有啥联系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-30 21:29:05 | 显示全部楼层
代码发全,标题简明,详细问题写在贴子里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-30 23:30:35 | 显示全部楼层
没有看懂问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-1 09:43:39 | 显示全部楼层    本楼为最佳答案   
python 会在运行时检测代理是否有效,无效的话调用本地ip访问,别问我怎么限制python不使用本地ip,问我我也不知道。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-1 11:18:21 | 显示全部楼层
suchocolate 发表于 2021-6-30 21:29
代码发全,标题简明,详细问题写在贴子里。

第一次发帖 不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-1 11:19:22 | 显示全部楼层
wp231957 发表于 2021-6-30 20:07
第一,你的问题就没看懂
第二,更不明白那几个import语句和你的问题有啥联系

不知道为什么代码没打全 我自己后来又加了回复 但好像需要时间审核才能看到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-1 11:20:56 | 显示全部楼层
nahongyan1997 发表于 2021-7-1 09:43
python 会在运行时检测代理是否有效,无效的话调用本地ip访问,别问我怎么限制python不使用本地ip,问我我 ...

那就是用https吧 因为我把改成https后 就必须是正确的ip地址了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-1 16:10:20 | 显示全部楼层
sigerson 发表于 2021-7-1 11:20
那就是用https吧 因为我把改成https后 就必须是正确的ip地址了

不管是http 还是 https 如果ip 无效都会 使用本地IP
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表