请选择 进入手机版|继续访问电脑版
发新帖

Python 新手,有个很奇怪的问题,特来请教

[复制链接]
10031 5

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
import urllib.request
import urllib.parse

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'
data = {}
data['i'] = 'love'
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1502634572544'
#sign:50b0d2d06c1220f996cc3766c05fca1c 会变
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLlCKBUTTON'
data['typoResult'] = 'true'
data = urllib.parse.urlencode(data).encode('utf-8')

req = urllib.request.Request(url,data)
req.add_header('Referer','http://fanyi.youdao.com')
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36')
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
print(html)
其中第三行代码( url 这一行)我换成
http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null
就可以爬取,但是换成直接从网页上复制下来的
http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=
就不可以,这是为什么啊?还有就是我注释掉的这一行是什么意思,翻译时每次都会变。

举报 使用道具

回复

精彩评论5

katios  新手上路  发表于 2017-8-15 04:24:42 | 显示全部楼层
直接从网址复制下来的,并不是翻译的接口,而是界面的显示的 url.
你翻译实际上是请求的 http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null
这个地址。

举报 使用道具

回复
sqf3903  新手上路  发表于 2017-8-15 16:09:50 | 显示全部楼层
@katios 请问这个地址是在哪里找到的?

举报 使用道具

回复
eds1995  新手上路  发表于 2017-8-15 23:47:10 | 显示全部楼层
@katios 会用浏览器 chrome 吗?右键开发工具,然后点击 Network,观察请求,就可以看到 url

举报 使用道具

回复
eds1995  新手上路  发表于 2017-8-17 04:38:45 | 显示全部楼层
@sqf3903 上面回复错了,完整的有道爬虫 url 是:
url ='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/'

举报 使用道具

回复
omg21  新手上路  发表于 2017-8-17 15:42:48 | 显示全部楼层
先做好准备,
打开这个页面: http://fanyi.youdao.com/
按 f12 打开调式模式,选 network
然后回到网页上,在需要翻译的内容栏里随便写点什么,然后点翻译,这里你会看到 调试模式里出现了一列文件,你先找到 translate 这个文件,点一下,会弹出一个子菜单,然后再点 preview,这就是你要的结果了。

举报 使用道具

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

本版积分规则

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