有道翻译网页端 data 数据查找问题

import urllib.request
import urllib.parse
import json

# 请输入你要翻译的内容
key = input("请输入要翻译的内容:")
# 把提交的form表单数据转为bytes数据类型
data = {"i": key,
  "from":"AUTO",
  "to":"AUTO",
  "smartresult":"dict",
  "client":"fanyideskweb",
  "salt":"1540373170893",
  "sign":"a5d9b838efd03c9b383dc1dccb742038",
  "doctype":"json",
  "version":"2.1",
  "keyfrom":"fanyi.web",
  "action":"FY_BY_REALTIME",
  "typoResult":"false"
  }
# 字符串 i=python&from=auto....
data = urllib.parse.urlencode(data)
data = bytes(data,"utf-8")

# 发请求,获取响应
# url为POST的地址,抓包工具抓到的,此处去掉 _o
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
headers = {"User-Agent":"Mozilla/5.0"}
# 此处data为form表单数据,为bytes数据类型
req = urllib.request.Request(url,data=data,headers=headers)
res = urllib.request.urlopen(req)
html = res.read().decode("utf-8")

# 把json格式字符串转换为Python中字典
r_dict = json.loads(html)
print(r_dict)

我想知道下面这张图在网页端怎么查找相关数据,我没找到。。。我是看别人的代码的,自己不知道怎么找,找了好几次都没找到。
http://fanyi.youdao.com/
有道翻译网页端data数据查找问题

我这是用Charles 找的,不知道对不对?
有道翻译网页端data数据查找问题

最佳答案

首先,你要准备好google chrome(爬虫必备)。进入到有道翻译,点F12调出开发者工具,接着选择network-xhr文件,最后F5刷新一下网页。刷新完之后,随便输入一段译文,翻译结果出来后,你会发现一个新的网站文件,如图所示:

Python
之后点击圈住的文件,翻到最底部的数据,你就可以看到data数据了,看吧,参数和代码中的一模一样。只不过是把i改成了其它的译文。

Python

Python
这个时候,你只要复制并且加上双引号就行了
对了,确实有一个不同点,那就是网站文件里面没有写typoResult参数。这个typoResult其实不用加的,去掉也无所谓。
如果你觉得我讲得还不够详细,可以去看一下我的博客,有一篇文章叫“python 爬虫 爬取百度翻译”。里面也有讲过找data数据,可以去看一下。

4年前 评论
讨论数量: 2

首先,你要准备好google chrome(爬虫必备)。进入到有道翻译,点F12调出开发者工具,接着选择network-xhr文件,最后F5刷新一下网页。刷新完之后,随便输入一段译文,翻译结果出来后,你会发现一个新的网站文件,如图所示:

Python
之后点击圈住的文件,翻到最底部的数据,你就可以看到data数据了,看吧,参数和代码中的一模一样。只不过是把i改成了其它的译文。

Python

Python
这个时候,你只要复制并且加上双引号就行了
对了,确实有一个不同点,那就是网站文件里面没有写typoResult参数。这个typoResult其实不用加的,去掉也无所谓。
如果你觉得我讲得还不够详细,可以去看一下我的博客,有一篇文章叫“python 爬虫 爬取百度翻译”。里面也有讲过找data数据,可以去看一下。

4年前 评论
Jason990420

使用 BROWSER 自带的开发人员工具就可以了

  1. 开启网页
  2. 功能表 -> 工具 -> 开发人员工具 或 直接按 F12 叫出来
  3. 刷新网页
  4. Elements 那一行选 Network
  5. Headers 那一行选 Preiew
  6. 点选 Name 中的网址, 直到 Preview 里看到翻译结果的字典, Preview 改为 Headers
  7. 在 General 中, 就可以看到请求与响应的内容

注: 以上内容以 Google Chrome 为例

4年前 评论
OlafChou (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!