目录

requests库的使用

requests库的安装

requests的简单使用

添加请求头和参数

处理POST请求

代理IP

获取响应的cookie

session实现登录


requests库的安装

由于requests模块属于第三方模块,所以需要下载安装

下载安装很简单,打开DOS窗口

输入如下命令:

pip install requests

即可下载requests模块了

python下载curses_python

同时,如果要卸载模块,可以命令:
 

pip uninstall requests

效果图显示:

python下载curses_python_02

requests的简单使用

import requests

# 和urllib模块功能类似,requests更加方便、轻量化
# requests模块是第三方模块,需要下载安装
# 打开DOS窗口,输入安装命令是pip install requests
# 卸载命令是:pip uninstall requests
# 引入requests模块的代码如下:import requests

# 发送请求,获取响应
response = requests.get("http://www.baidu.com").content.decode()  # .text是以字符串的形式获取响应内容;.content是以二进制的形式获取响应内容;.decode()是转换中文
# 也可以使用这种方式获取
# response=requests.request("get","http://www.baidu.com").content.decode()
# 打印
print(response)

打印如下:

python下载curses_IP_03

添加请求头和参数

import requests

# 添加请求头和参数

# 请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"
}
# 参数
wd = {"wd": "参数"}
# 发送请求,获取响应
response = requests.get("http://www.baidu.com/s?", params=wd, headers=headers)  # 会自动创建请求,并且对中文编码进行转换
data1 = response.text  # 返回一个字符串形式的数据
data2 = response.content  # 返回一个二进制形式的数据
data3 = response.content.decode()  # 返回一个字符串形式的数据,将二进制数据转换成字符串形式
# 可分别打印data1、data2、data3查看三者之间的区别
print(data3)

打印如下:

python下载curses_jar_04

处理POST请求

以有道翻译为例

import requests

# 处理POST请求

# 请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"
}
# 原URL:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
key = "学习"
# 发送POST必须构造Form Data
form_data = {
    "i": key,
    "from": "AUTO",
    "to": "AUTO",
    "smartresult": "dict",
    "client": "fanyideskweb",
    "salt": "15749948169760",
    "sign": "287760012f276620e8eaed1e00aff339",
    "ts": "1574994816976",
    "bv": "319767f82622c78aa4241bb7a80c5077",
    "doctype": "json",
    "version": "2.1",
    "keyfrom": "fanyi.web",
    "action": "FY_BY_REALTlME"
}
# 发送请求,获取响应
response = requests.post(url, headers=headers, data=form_data)
# 打印获取的JSON格式的字符串
print(response.json())  # 可以通过.json()获取JSON格式的数据
# 打印处理后的结果
print(response.json()["translateResult"][0][0]["tgt"])

打印如下:

python下载curses_python下载curses_05

代理IP

import requests  # 导入requests模块

# 代理IP

# 这里使用的代理IP网站:http://www.66ip.cn/
# 设置代理IP地址
# http表示要处理HTTP请求;https表示要处理HTTPS请求
# 语法:{"http":"http://代理IP地址:端口号"}
# 可以使用多个代理IP
proxy = {
    "http": "http://139.5.71.94:23500",
    "http": "http://201.220.16.103:8080",
    "https": "https://139.5.71.94:23500"
}
# 发送请求,获取响应
response = requests.get("http://www.baidu.com", proxies=proxy)  # proxies必须是这个参数
# 打印
print(response.content.decode())

打印如下:

python下载curses_python下载curses_06

获取响应的cookie

import requests  # 导入requests模块

# 获取响应的cookie
# 第一步:获取返回的cookiejar对象,其包含cookie信息
# 第二步:将cookiejar转换成字典

# 发送请求,获取请求
response=requests.get("http://www.baidu.com")
# 获取返回的cookiejar对象
cookie_jar=response.cookies
# 将cookiejar转换成字典
cookie_dict=requests.utils.dict_from_cookiejar(cookie_jar)
# 打印cookie_dict
print(cookie_dict)

打印如下:

python下载curses_python爬虫_07

session实现登录

import requests  # 导入requests模块

# session实现登陆

# 创建session对象
ses = requests.session()
# 构建登陆需要的参数,键是根据需要登陆的表单来写的
data = {"userName": "******", "password": "******"}
# 通过传递用户名和密码得到cookie信息
ses.post("http://www.renren.com/PLogin.do", data=data)
# 请求需要的页面
response = ses.get("http://www.renren.com/880151247/profile")
# 打印
print(response.content.decode())