Python爬虫新手村上手指南④

250 阅读1分钟

requests库的简介

Requests是Python一个很实用的HTTP客户端,完全满足如今网络爬虫的需求。

requests是第三方库,需要安装才能使用

requests库的安装

pip命令安装

pip install requests

除此之外,还可以选择下载zip源码

github.com/psf/request…

解压至Python安装目录,

并且,Python目录下通过cmd运行命令行,输入以下命令,完成安装。

python setup.py install

requests库常用的方法

requests.request(url) 构造一个请求,支持以下各种方法

requests.get() 发送get请求

requests.post() 发送post请求

requests.head() 获取HTML的头部信息

requests.put() 发送put请求

requests.patch() 提交局部修改的请求

requests.delete() 提交删除请求

最常用的方法为get和post

response对象的常用属性

response.status_code 响应状态码

response.content 把response对象转换为二进制数据

response.text 把response对象转换为字符串数据

response.encoding 定义response对象的编码

response.cookies 获取请求后的cookie

response.url 获取请求网址

response.json() 内置的JSON解码器

response.headers 以字典对象存储服务器响应头,字典键不区分大小写

requests不带参数的get请求

百度首页:www.baidu.com/

#发送不带参数的get请求
import requests
url = 'https://www.baidu.com/'
resp = requests.get(url)
#设置响应的编码格式
resp.encoding = 'utf-8'
cookies = resp.cookies
headers = resp.headers;
print('响应状态码', resp.status_code)
print('请求后的cookie', cookies)
print('获取请求的网址', resp.url)
print('响应头', headers)
print('响应内容', resp.text)

requests带请求参数的get请求

360搜索:www.so.com/s?q=python

# https://www.so.com/s?q=python
import requests
url = 'https://www.so.com/s'
params = {'q': 'python'}
resp = requests.get(url, params=params)
resp.encoding = 'utf-8'
print(resp.text)

获取JSON数据,获取二进制数据

import requests
url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=9115130383546662963&ipn=rj&ct=201326592&is=&fp=result&fr=&word=%E7%BE%8E%E5%A5%B3&cg=girl&queryWord=%E7%BE%8E%E5%A5%B3&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&expermode=&nojc=&isAsync=&pn=30&rn=30&gsm=1e&1650956477690='
resp = requests.get(url)
json_data = resp.json()
print(json_data)
import requests
url = 'https://www.baidu.com/img/flexible/logo/pc/result.png'
resp=requests.get(url)
#存储
with open('logo.png', 'wb') as file:
    file.write(resp.content)

使用requests发送post请求

import requests
url = 'https://juejin.cn/passport/web/user/login/?account_sdk_source=web'
data = {
    'username': 'admin',
    'password': '@Test123$%^',
    'captcha': '1',
    'key': '1650535293946'
}
resp = requests.post(url,data=data)
resp.encoding = 'utf-8'
print(resp.status_code)
print(resp.text)

使用requests的session发送请求

import requests
url = 'https://juejin.cn/passport/web/user/login/?account_sdk_source=web'
data = {
    'username': 'admin',
    'password': '@Test123$%^',
    'captcha': '1',
    'key': '1650535293946'
}
#使用session发送请求
session = requests.session()
resp = session.post(url, data=data)
resp.encoding = 'utf-8'
print(resp.text)