python之爬虫的入门03------post请求伪造、程序猿是怎么玩有道翻译

import urllib.request
import urllib.parse
import json


content = input('请输入要翻译内容:')


# url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'        #设定前往的网络地址


data = {}                         #创建字典data   来取代form data
#字典data里面添加键值对
data['i'] = content            #我们输入的要翻译的内容
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1538036769641'
data['sign'] = '55fee779866d4a78185be7d2bf67a40a'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data['typoResult'] = 'false'

data = urllib.parse.urlencode(data).encode('utf-8')            #字典数据编码

req = urllib.request.Request(url,data)                 #创建request请求,请求里面包括各种信息
#添加request的header里面的User-Agent
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36')


response = urllib.request.urlopen(req)                #发送request请求,接收response反应
html = response.read().decode('utf-8')               #返回的内容解码
print(html)
# print(type(html))
html = json.loads(html)                           #将json数据转为字符串形式
print(html)
html = html['translateResult'][0][0]['tgt']      #锁定 key:tgt  ,并展示它的值value
print(html)

这里的字典data用来伪造浏览器post请求携带的form data。
form data这么看:鼠标在‘’翻译‘’上面点击右键,进入审查元素或者检查,里面的network里面,此时输入翻译的英文,network里面有一个translate文件,点击右边会出现介绍,里面有个form data。

猜你喜欢

转载自blog.csdn.net/sui_yi123/article/details/83511661