Python爬虫教程-07-post介绍(百度翻译)(上)

Python爬虫教程-07-post介绍(百度翻译)(上)

  • 访问网络两种方法
    • get:
      • 利用参数给服务器传递信息
      • 参数为dict,使用parse编码
    • post :(今天给大家介绍的post)
      • 一般向服务器传递参数使用
      • post是把信息自动加密处理
      • 使用post传递信息,需要用到data参数
      • 使用post意味着http的请求头信息可能需要更改:
        • Content-Type:application/x-www.form-urlencode
        • Content-Length:数据长度
        • 简而言之,一旦更改请求的方法,注意其他请求头部信息相适应
      • urllib.parse.urlencode可以将字符串自动转换成上面的格式

案例v7

  • post经典案例,就是百度翻译
    • 利用parse模块模拟post请求
    • 分析步骤
      • 1.打开开发者工具F12>【Network】>【XHR】>【Headers】
      • 2.尝试简单的单词,查看发出的请求
      • 3.找到请求地址URL,请求的方式Method
      • 4.找到参数的传递格式Content-Type, 参数样式Form Data
  • 编写代码
# 案例v7百度翻译
from urllib import request,parse
# 导入json包,负责处理json格式的模块
import json

'''
大致流程:
1.利用data构造内容,然后urlopen打开
2.返回一个json格式的结果
3.结果就应该是服务器返回的释义
'''

baseurl = 'http://fanyi.baidu.com/sug'
# 存放用来模拟form的数据,一定是dict格式
keyword = input("请输入需要翻译的内容:")
data = {
    'kw': keyword
}
# print(data)

# 需要使用parse模块对data进行编码
data = parse.urlencode(data)
data = data.encode('utf-8')
# print("编码后的data:",data)
# print("编码后的data类型:",type(data))
# 当需要类型为bytes时:在数据的后面加上: data = data.encode('utf-8')

# 构造请求头,请求头部至少包含:
# 1.传入数据的长度
# 2.request要求传入的请求是一个dict格式

# 有了headers,data,url就可以尝试发出请求
rsp = request.urlopen(baseurl,data=data)

json_data = rsp.read().decode()

# 把json字符串转换为字典
json_data = json.loads(json_data)
# print(json_data)

for item in json_data['data']:
    if item['k'] == keyword:
        print(item['k'], ": ", item['v'])

运行结果

这里写图片描述

更多文章链接:Python 爬虫随笔


- 本笔记不允许任何个人和组织转载

可以使用Python编写爬虫来实现百度翻译功能。下面是一个示例代码,可以将输入的英文单词或中文翻译为对应的信息并打印出来: ```python import requests url = "https://fanyi.baidu.com/sug" header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36' } def translate_word(word): data = {'kw': word} res = requests.post(url=url, data=data, headers=header) translation = res.json() print(translation) # 示例调用 content = input("请输入需要查询的中文或英文单词:") translate_word(content) ``` 这段代码使用requests库发送POST请求到百度翻译接口,将输入的内容作为请求参数发送,并根据返回的JSON数据打印出翻译结果。 为了将这段代码打包成一个可执行的小程序,可以使用pyinstaller工具。使用以下命令将代码打包成一个独立的可执行文件: ``` pyinstaller -F -i 1.ico 1.8-8.py ``` 其中`-F`选项表示将所有依赖项打包成单个可执行文件,`-i`选项指定生成的可执行文件的图标,`1.ico`是图标文件的路径,`1.8-8.py`是源代码文件的路径。 这样就可以得到一个独立的可执行文件,可以直接运行并进行百度翻译。请注意,为了运行成功,你需要安装requests库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python爬虫——POST请求百度翻译案例(最后制作成小程序)](https://blog.csdn.net/xiaofengdada/article/details/122386149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖朋伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值