【Python网络蜘蛛 · 3】:post请求、模拟金山翻译(附源代码)

目录

一、post请求

1、post请求出现的场景

2、如何发送post请求

3、get和post的区别

二、模拟金山翻译

1、实现思路

2、具体实现步骤

3、实现源代码


一、post请求

1、post请求出现的场景

  • 登录注册
  • 传输大文本内容

2、如何发送post请求

  • data参数接受一个字典
  • request.post(url, data)

3、get和post的区别

  • get使用比较多,get直接向服务器发送请求,获取响应数据
  • post请求需要客户端先给服务器一些数据,然后再获取响应
  • get请求可以携带数据,但是参数在url中,不安全,而post请求通过data参数来携带数据,较为安全

二、模拟金山翻译

1、实现思路

  • 抓包确定请求的url地址
  • 确定请求的参数
  • 确定翻译后内容的位置
  • 模拟浏览器获取数据

2、具体实现步骤

  • 进入金山翻译的网页,打开网页检查,点击Network进行抓包

  • 清空点击Network后看到的包,以便于以后更好的抓包

  • 输入翻译内容后,有一些包出现,从这些出现的包中找到有翻译内容的包

  • 找到目标,发现有对应参数的出现

  • 点击Response,按下Crtl + “ F ”键,出现搜寻框,输入翻译后的内容(China),如果找到翻译内容则这就是我们要找的包,如果没有翻译内容则需要重新抓包

  • 可重复几次(2)~(5)步,发现规律,参数中,除了“from”和“to”的参数不变,只有q的参数改变,于是开始进行模拟

​ 

(7)代码演示

  •  当我们打印获取的信息时发现它是字符串类型,是字符串中包含着字典,可以理解为:"{}",于是我们可以通过eval()函数除去它的字符串,获取字典

3、实现源代码

import requests
# 获取翻译包的url
url = 'https://ifanyi.iciba.com/index.php?c=trans'
# 构建请求头
headers = {
    'User-Agent': '', # 每个人的User_Agent不同,自己可以通过抓的包里复制粘贴
    'Referer': 'https://www.iciba.com/',
    'Host': 'ifanyi.iciba.com'
}
# 实现用户输入的功能
content = input('请输入您想翻译的内容:')
# 构建参数字典
post_data = {
    'from': 'zh',
    'to': 'en',
    'q' : content,
}
# 发送请求
res = requests.post(url, headers=headers, data=post_data)
res_1 = res.content.decode()
print(eval(res_1)['out'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

街 三 仔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值