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'])

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

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

目录
相关文章
|
8天前
|
数据采集 XML 数据处理
使用Python实现简单的Web爬虫
本文将介绍如何使用Python编写一个简单的Web爬虫,用于抓取网页内容并进行简单的数据处理。通过学习本文,读者将了解Web爬虫的基本原理和Python爬虫库的使用方法。
|
5天前
|
数据采集 Web App开发 数据可视化
Python爬虫技术与数据可视化:Numpy、pandas、Matplotlib的黄金组合
Python爬虫技术与数据可视化:Numpy、pandas、Matplotlib的黄金组合
|
7天前
|
数据采集 存储 大数据
Python爬虫:数据获取与解析的艺术
本文介绍了Python爬虫在大数据时代的作用,重点讲解了Python爬虫基础、常用库及实战案例。Python因其简洁语法和丰富库支持成为爬虫开发的优选语言。文中提到了requests(发送HTTP请求)、BeautifulSoup(解析HTML)、Scrapy(爬虫框架)、Selenium(处理动态网页)和pandas(数据处理分析)等关键库。实战案例展示了如何爬取电商网站的商品信息,包括确定目标、发送请求、解析内容、存储数据、遍历多页及数据处理。最后,文章强调了遵守网站规则和尊重隐私的重要性。
17 2
|
10天前
|
数据采集 定位技术 Python
Python爬虫IP代理技巧,让你不再为IP封禁烦恼了! 
本文介绍了Python爬虫应对IP封禁的策略,包括使用代理IP隐藏真实IP、选择稳定且数量充足的代理IP服务商、建立代理IP池增加爬虫效率、设置合理抓取频率以及运用验证码识别技术。这些方法能提升爬虫的稳定性和效率,降低被封禁风险。
|
11天前
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
18 0
|
12天前
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
16 0
|
15天前
|
数据采集 Web App开发 开发者
探秘Python爬虫技术:王者荣耀英雄图片爬取
探秘Python爬虫技术:王者荣耀英雄图片爬取
|
16天前
|
存储 数据采集 NoSQL
使用Python打造爬虫程序之数据存储与持久化:从网络到硬盘的无缝对接
【4月更文挑战第19天】本文探讨了爬虫中的数据存储与持久化技术,包括文本文件存储、数据库(关系型与非关系型)、NoSQL数据库和键值存储,以及ORM框架的使用。根据数据类型、规模和访问需求选择合适存储方式,并注意数据安全、备份和恢复策略。正确选择和应用这些技术能有效管理和利用爬取数据。
|
9天前
|
存储 人工智能 数据处理
Python:编程的艺术与科学的完美交融
Python:编程的艺术与科学的完美交融
14 1