python爬虫post访问案例-有道翻译

简介: python爬虫post访问案例-有道翻译
  • post请求会携带一些form表单数据,这个需要复制过来以字典形式写入。
    表单数据在网页上点击F12后,在Fetch/XHR一栏中的Payload中获取。
    以搜索“你好”为例,此时的表单数据如下:
    i: 你好
    from: AUTO
    to: AUTO
    smartresult: dict
    client: fanyideskweb
    salt: 16417380413821
    sign: 6545acd2d928b39eb5bead9349a2d4ff
    lts: 1641738041382
    bv: fdac15c78f51b91dabd0a15d9a1b10f5
    doctype: json
    version: 2.1
    keyfrom: fanyi.web
    action: FY_BY_REALTlME

对于这些数据,写到代码中还需要一定的操作。
因为是放在字典中,所以都要加上字符串。可以使用正则替换快速完成:ctrl + r ,(.*): (.*) “$1”:"$2"
再就是我们实际翻译不只翻译你好这一个词,所以把“你好”换成变量名key。
修改好后的形式见代码中。

使用urllib库访问

import urllib.request
import urllib.parse
import json

# 要进行输入内容
key = input("请输入内容:")
data = {
    
    "i": key,
    "from": "AUTO",
    "to": "AUTO",
    "smartresult": "dict",
    "client": "fanyideskweb",
    "salt": "16374132986488",
    "sign": "dfd139af546a8cd63de0676f446ca2ee",
    "lts": "1637413298648",
    "bv": "03a6a27012b22bc3c7ecc76381772182",
    "doctype": "json",
    "version": "2.1",
    "keyfrom": "fanyi.web",
    "action": "FY_BY_REALTlME",
}
# 字节流,如果输入中文,需要处理的
data = urllib.parse.urlencode(data)  # 转为十六进制形式
data = bytes(data, encoding='utf8')  # 转为字节流
headers = {
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
    }
# 目标url发请求
# {"errorCode":50} ,把_o
url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
# 构建请求对象
req = urllib.request.Request(url, data=data, headers=headers)
# 发请求,获取响应对象
res = urllib.request.urlopen(req)
# print(res.getcode())  # 得到响应码,200表示请求成功
html = res.read().decode('utf-8')
# print(type(html))  # <class 'str'>,得到的是json数据
# json数据转字典
dic = json.loads(html)
result = dic["translateResult"]  # [[{'src': '你好', 'tgt': 'hello'}]]
print(result[0][0]['tgt'])

结果如图所示:
在这里插入图片描述

使用requests库访问

import requests
import json

# 请输入要翻译的内容
key = input("请输入:")

# 携带的数据
data = {
    
    "i": key,
    "from": "AUTO",
    "to": "AUTO",
    "smartresult": "dict",
    "client": "fanyideskweb",
    "salt": "16374132986488",
    "sign": "dfd139af546a8cd63de0676f446ca2ee",
    "lts": "1637413298648",
    "bv": "03a6a27012b22bc3c7ecc76381772182",
    "doctype": "json",
    "version": " 2.1",
    "keyfrom": "fanyi.web",
    "action": "FY_BY_REALTlME",
}
url = 'https://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
headers ={
    
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
}
# 构建请求对象
req = requests.post(url, data=data, headers=headers)
print(req.text)

dic = json.loads(req.text)
result = dic["translateResult"]  # [[{'src': '你好', 'tgt': 'hello'}]]
print(result[0][0]['tgt'])

结果如图所示:
在这里插入图片描述

可以看出,代码相对简洁。

目录
相关文章
|
2月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
3月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
2月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
276 0
|
2月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
3月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
740 19
|
2月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
2月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
8月前
|
数据采集 测试技术 C++
无headers爬虫 vs 带headers爬虫:Python性能对比
无headers爬虫 vs 带headers爬虫:Python性能对比
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
551 6
|
8月前
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
1149 31

推荐镜像

更多