爬虫入门之requests模块post方法

POST 请求与GET请求的区别

1、 请求更安全

post不会作为url的⼀部分,不会被缓存、保存⽇志、以及记录在浏览器中。
get请求的是静态资源,则会缓存,如果是数据,则不会缓存。

2、请求发送的数据更⼤

get请求有url⻓度限制;post请求⻓度不限。

3、请求能发送更多的数据类型

get请求只能发送⼆进制数据;post能发送json,表单,⽂件参数等。

4、传参⽅式不同

get请求参数通过url传递;post请求放在request body中传递。

5、get请求产⽣⼀个数据包;post请求产⽣两个数据包

get请求,浏览器会把header和data⼀并发送出去,服务器响应200返回数据。
post请求,浏览器先发送header,服务器响应100,浏览器再发送data,服务器响应200 再返回数据。

百度翻译实例

1、在浏览器中拿到url等信息

在这里插入图片描述发现banana并不在网页源代码中,切换到XHR,搜索banana

在这里插入图片描述
在这里插入图片描述

找到了数据存储的文件,从中获取url,请求方式,发送的data等。也能得知返回的是json文件。

import requests


def get_en(var):
    # 在浏览器中找网址,请求方式为POST
    url = r"https://fanyi.baidu.com/v2transapi"

    headers = {
        'User-Agent': User-Agent,
        'Cookie': Cookie
    }

    data = {
        'from': 'zh',
        'to': 'en',
        'query': var,
        'simple_means_flag': '3',
        'sign': '816986.562283',   # 这个参数只适用与香蕉
        'token': '99a919c2ec55b5d94460a2d84fa80271',
        'domain': 'common',
        'ts': '1701755450221',  # 这个参数只适用与香蕉
    }

    response = requests.post(url, headers=headers, data=data)
    print(response.json())


def main():
    zh = '香蕉'
    print(get_en(zh))


if __name__ == '__main__':
    main()
  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值