requests模块发送post请求的方法 和 使用代理ip的方法

一、requests模块(post)请求篇

‘’’
利用parse模块模拟post请求
分析百度词典
分析步骤:

  1. 打开F12
  2. 尝试输入单词girl,发现每敲一个字母后都有请求
  3. 请求地址是 http://fanyi.baidu.com/sug
  4. 利用NetWork-All-Hearders,查看,发现FormData的值是 kw:girl
  5. 检查返回内容格式,发现返回的是json格式内容==>需要用到json包
    ‘’’

import requests

baseurl = ‘http://fanyi.baidu.com/sug’

存放用来模拟form的数据一定是dict格式
data = {
# girl是翻译输入的英文内容,应该是由用户输入,此处使用硬编码
‘kw’: ‘girl’
}

我们需要构造一个请求头,请求头部应该至少包含传入的数据的长度
request要求传入的请求头是一个dict格式

headers = {
# 因为使用post,至少应该包含content-length 字段
‘Content-Length’:str(len(data))
}

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

print(rsp.text)
print(rsp.json())

二、 requests模块(代理)篇

  • 用户验证

- 代理验证
    #可能需要使用HTTP basic Auth, 可以这样
    # 格式为 用户名:密码@代理地址:端口地址
    proxy = { “http”: "china:[email protected]:4444"}
    rsp = requests.get(“http://baidu.com”, proxies=proxy)

- web客户端验证
    - 如果遇到web客户端验证,需要添加auth=(用户名,密码)
    auth=(“test1”, “123456”)#授权信息
    rsp = requests.get(“http://www.baidu.com”, auth=auth)

你可能感兴趣的:(系统学习python)