开发工具与关键技术:Python IDEL、Python
作者:曾浩源
撰写时间:2019年08月07日

写一个小功能来模拟搜狗翻译发送请求,让这个小功能拥有翻译的功能。
首先打开搜狗翻译,然后F12或右键选择检查,找到Network,再搜狗翻译内进行一次翻译,之后Name下就出现一堆东西,如:

看着大概也知道,出来translateV2、suggV2和translateV2ForPicSet其余都是一些图片,以上三个都是post请求,这里选择的是suggV2,它是释义而且传的数据也少所以选它了,至于其他两个,到时候自己试试吧。
从这里就可以知道了请求url地址(Requset URL),和所要传输的数据(From Data)

接下来就是将所要的内容赋予我们Python里的变量:

 url="https://fanyi.sogou.com/reventondc/suggV2"data={}data["from"]="auto"data["to"]="zh-CHS"data["client"]="pc"data["text"]=contentdata["uuid"]="a494de6c-0c2c-4e1d-a6be-be70df3c2dfa"data["pid"]="sogou-dict-vr"data["addSugg"]="on"

之后就是发送数据,但这是post请求,不是get请求,get请求直接拼接所要传输的数据就行了,而post请求要被编码为字节数据,所以我们要转编码。
发送数据就是请求,和转编码它们需要我们在python内引用urllib模块.

请求要urllib内的request(urllib.request 用于打开网址的可扩展库。)、转编码需要urllib内的parse(urllib.parse URL解析组件)

所以在最前面引入需要的模块

import urllib.request
import urllib.parse

在data赋值完成后,将data转码为utf-8,这要看别人网页的请求头是啥了,现在一般都是utf-8。
在Python中,我们通常使用urllib中的urlencode方法将字典编码,所以:

data = urllib.parse.urlencode(data).encode('utf-8')

编码完成后就可以直接使用urllib.request.urlopen()方法向要打开的url链接发送我们的数据data 了:

response = urllib.request.urlopen(url,data)

响应后,我们需要读取响应,再把它转码为utf-8

html = response.read().decode('utf-8')

读取到之后,但它是字符串形式:

发现它很像是一个字典,其实就是字典的字符串格式,我们现在就需要把它从字符串转为字典,这里需要引用一个模块,json模块。
在代码最上面的引用代码后加入

import json

获取到响应回来的内容赋值给html后,转为字典如下:

 target=json.loads(html)

输出:

我们需要的是 键:data的值,它的值是一个列表,需要第一个也就是索引0,列表里又是字典,需要的是 键:v的值
所以:

 target=target['data'][0]["v"]print("翻译结果:%s" % target)

完整的一些小修改后的代码:

import urllib.request
import urllib.parse
import json
import time
import randomwhile True:content=input("请输入需要翻译的内容(输入q!退出程序):")if content == 'q!':breakurl="https://fanyi.sogou.com/reventondc/suggV2"data={}data["from"]="auto"data["to"]="zh-CHS"data["client"]="pc"data["text"]=contentdata["uuid"]="a494de6c-0c2c-4e1d-a6be-be70df3c2dfa"data["pid"]="sogou-dict-vr"data["addSugg"]="on"data = urllib.parse.urlencode(data).encode('utf-8')req =urllib.request.Request(url,data)req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3587.400")response=urllib.request.urlopen(req)html=response.read().decode('utf-8')target=json.loads(html)if not 'data' in target:print('没有该翻译!')else:target=target['data'][0]["v"]print("翻译结果:%s" % target)time.sleep(2)

Python模拟搜狗翻译发送请求相关推荐

  1. 爬虫模拟对“有道在线翻译”发送请求(请求中的数据含需分析js来解出变化数据)

    每日分享: 做好自己 世界上没有一份工作不辛苦,也没有一处人事不复杂,无论你当下正在经历什么,都要调整好心态,继续前行,继续努力! 总有人嫌你不够好,也总有人觉得你哪里都好,爱你的人自然会爱你,不爱你 ...

  2. python 自制搜狗翻译工具

    一.登陆搜狗翻译页面,分析请求 1.url地址:https://fanyi.sogou.com/ 在里面输入中文翻译 可以看出,请求的地址为 https://fanyi.sogou.com/reven ...

  3. python模拟postman发https请求_【接口测试】Postman入门01-特点和简介

    原文链接: https://www.getpostman.com/postman 翻译:凯凯 Postman简介 Postman是最完整的API测试开发环境,可以使得API测试开发变得更快.更好.更容 ...

  4. 如何使用soapUI模拟webservice客户端发送请求

    随着软件行业的发展,一个完成的系统已经不能使用简单的项目来完成,而是有多个项目之间相互协同工作,项目之间就需要进行即时通讯,现在比较流行的通讯方式是通过webservice服务.比较流程的webser ...

  5. php使用axios发送请求,axios源码之模拟实现axios发送请求

    axios内部运作流程大致如下axios入口- ->axios构造函数- ->interceptors请求拦截器- ->dispatchRequest方法- ->transfo ...

  6. requests_模拟搜狗翻译

    01笔记  在搜狗翻译的url中,请求的方法是Post,所以我们需要通过requests.post方法来请求数据:     接着url的请求参数是一个字典,所以我们需要修改该字典参数的搜索关键词,且其 ...

  7. python通过requests库发送请求

    文章目录 一.requests库 二.发送请求 1.发送get请求 2.传递url参数 (1)直接通过url传递 (2)通过字符串传递 (3)通过字典传递 3.发送post请求 (1)提交form表单 ...

  8. 使用JMeter模拟多IP发送请求(IP欺骗)

    文章目录 (一)IP欺骗的使用场景 (二)JMeter如何设置IP欺骗 (1)获取可用IP (2)配置IP (3)JMeter中配置IP欺骗 (三)注意 前言:如果精通LoadRunner,可以直接使 ...

  9. python客户端通过代理发送请求

    国外有些网站被屏蔽或者访问较慢,通过找代理服务器来访问,加快访问速度. 这边本地运行反向代理,一开始认为在port 8088,后来netstat发现在本地的8087. 于是python使用urllib ...

最新文章

  1. 文件 服务器 要求,文件服务器硬件要求
  2. git 常用命令_git常用命令的使用
  3. Android中Intent的显示和隐式使用
  4. 我的电脑不联网,很安全,黑客:你还有风扇呢。。。
  5. linux 基础命令总结
  6. @90后程序员,“颜值即正义”的现在,程序员应该如何更新穿搭?
  7. intptr_t 和 uintptr_t类型使用总结
  8. 记录“麻辣香锅”病毒处理过程
  9. 对视频马赛克的调研学习报告
  10. nginx实现均衡负载、nginx第三方模块的添加
  11. 北京大学生物信息学(9)第二代基因组测序技术
  12. Remote table-valued function calls are not allowed.
  13. python简单代码画曲线图教程-python画曲线
  14. win10-SW2016工程图关联零件属性链接操作
  15. Linux - 系统文件目录说明
  16. 环境在线监测监控系统
  17. python QQ邮件发送
  18. 下载软件-我爱分享网
  19. 无线通信基础知识7:射频器件的基本参数3
  20. 高校计算机教师swto分析,教师个人SWOT分析.doc

热门文章

  1. 申请注册公司需要什么材料
  2. mysql第五章 在线测试_PHP+MySQL实现在线测试答题示例
  3. DeepSORT论文翻译(SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC)
  4. 用Hyperledger cello的0.9.0-h3c分支创建一套区块链系统
  5. 案例分享 | TensorFlow 在贝壳找房中的实践
  6. 计算机课程设计收费管理系统,C语言机房收费管理系统课程设计
  7. python的excel-python操作Excel的几种方式
  8. batT脚本如何自动执行 adb shell 以后的命令(android抓包)
  9. pytorch获取模型的中间层输出结果
  10. python day 07