爬虫基础:Requests模块

Requests 是基于Python开发的HTTP网络请求库。

GET请求

import requests

url = "https://xxxx"

response1 = requests.get(url=url)
response1.encoding = response1.apparent_encoding    # 转码
print(response1.url)        # 请求地址
print(response1.text)       # 内容的文本形式
print(response1.content)    # 内容的二进制形式
print(response1.cookies)    # cookies

params = {'key1':'value1','key2':'value2'}
response2 = requests.get(
    url=url,
    params=params
)
print(response2.url)         # 请求地址          // 有参数时:https://www.baidu.com/?key2=value2&key1=value1

POST

import requests

url = "https://xxxx"

params = {'key1':'value1','key2':'value2'}
'''POST请求'''
headers = {
    'User-Agent': 'xxx'
}
response3 = requests.post(
    url=url,
    data=params,
    headers=headers
)

其他参数说明

无论是get还是post,又或者是其他方式的请求,都是在由工厂方法request产生的,该方法会多出一个参数method来却分是什么类型的请求。

def request(method, url, **kwargs):
    :param method: // 请求方式
    :param url: // 请求url
    :param params: // 字典形式的参数,可选
    :param data: // 字典、元组列表、字节、文件对象,可选
    :param json: // json数据,可选
    :param headers: // 请求头,字典类型,可选
    :param cookies: // cookies,字典或cookies对象,可选
    :param files: // 上传文件
    :param timeout: // 超时时间
    :param allow_redirects: // 是否允许重定向,默认为 true
    :param proxies: // 代理
    :param verify: // 是否需要证书,true时,必须传cert参数
    :param stream: // 是否是字节流,默认为 true
    :param cert: // 证书

关于cookies和session会话

import requests

url = "https://xxxx"

# 获取到 cookies
req1 = requests.get(url=url)
cookies = req1.cookies
# 在下次访问该网站时,带上cookies完成验证
req2 = requests.post(
    url=url,
    data={'key1':'value1','key2':'value2'},
    cookies=cookies
)
print(req2.text)

Python中的session会话会自动帮助我们完成cookies,headers等信息,这样我们每次访问的时间就无需多次传递cookies等信息。

# 首先我们需要创建一个session会话
session = requests.session()
# 访问一次网站,获取到cookies信息
session.get(url=url)
# 当我们再次访问该网站当其他网页内容是,我们无需要传递cookies了
req = session.post(
    url=url,
    data={'key':'value'}
)
print(req.text)

你可能感兴趣的:(爬虫基础:Requests模块)