栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫中requests模块发送post请求

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫中requests模块发送post请求

思考:哪些地方我们会用到post请求?

  1. 登录注册(post请求比get更安全,url地址中不会暴露用户的账号密码等信息)
  2. 需要传输大文本内容的时候(post请求对数据长度没有要求)
1.1 requests发送post请求的方法(与get请求类似)
  • response = requests.post(url, data)
  • data参数接收一个字典
  • requests模块发送post请求函数的其他参数和发送get请求的参数完全一致
1.2 post请求练习

以汉译英百度在线翻译为例:

地址:https://fanyi.baidu.com/?aldtype=16047#auto/zh

思路:

        1.进入网页抓包确定请求URL地址

        2.确定请求的参数

        3.确定返回数据的位置

        4.模拟浏览器获取数据

1.2.1 抓包分析的结论

1. url地址:https://fanyi.baidu.com/sug

2. 请求方法:post

3. 请求所需参数:kw: 汉语

4.User-Agent:

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
1.2.2 代码实现(写成了面向对象的形式)

代码:

import requests
import json


class King(object):

    def __init__(self, word_):
        self.url = 'https://fanyi.baidu.com/sug'
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
        }
        self.data = {
            'kw': word_
        }

    def get_data(self):
        response = requests.post(self.url, data=self.data, headers=self.headers)
        return response.content

    def parse_data(self, data):
        # loads方法将json字符串转换成python字典
        dict_data = json.loads(data)
        print(dict_data['data'][0]['v'])

    def run(self):
        # 编写爬虫逻辑

        # url
        # headers
        # data字典
        # 发送请求获取响应
        response = self.get_data()
        self.parse_data(response)
        # 数据解析


if __name__ == '__main__':
    while True:
        word = input('请输入你要翻译的词(退出输入0):')
        if word == '0':
            break
        a = King(word_=word)
        a.run()

运行结果示例:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498830.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号