爬虫请求库之requests

requests简介

#1、什么是requests模块
    requests模块是python中原生的基于网络请求的模块
#2、它有什么作用
    用来模拟浏览器发起请求
#3、优点
    自动处理url编码
    自动处理post请求参数
    简化cookie和代理操作

#安装及基本使用流程
    pip install requests
  #使用流程
        指定url
        基于requests模块发起请求
        获取响应对象中的数据值
        持久化存储

 基于get请求

#get常用参数
    #url

    #params {}

    #headers {}  --->>Referer ,User-Agent

    #cookies  {}  (Cookie信息虽然包含在请求头里,但requests模块有单独的参数来处理他,headers={}内就不要放它了)
import requests
# https://www.baidu.com/s?wd=python

url='https://www.baidu.com/s'
kw=input(">>:")
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
params={
    "wd":kw    #与上边wd相对应
}
response_text = requests.get(url=url,headers=headers,params=params).text
with open('./baidu.html','w',encoding='utf-8')as f:
    f.write(response_text)
简单使用

基于post请求

#GET请求
HTTP默认的请求方法就是GET
     * 没有请求体
     * 数据必须在1K之内!
     * GET请求数据会暴露在浏览器的地址栏中

GET请求常用的操作:
       1. 在浏览器的地址栏中直接给出URL,那么就一定是GET请求
       2. 点击页面上的超链接也一定是GET请求
       3. 提交表单时,表单默认使用GET请求,但可以设置为POST


#POST请求
(1). 数据不会出现在地址栏中
(2). 数据的大小没有上限
(3). 有请求体
(4). 请求体中如果存在中文,会使用URL编码!


#!!!requests.post()用法与requests.get()完全一致,特殊的是requests.post()有一个data参数,用来存放请求体数据
import requests,json
if __name__ == '__main__':


    url='https://fanyi.baidu.com/sug'
    kw=input(">>:")
    headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
    }
    data={
        "kw":kw
    }
    dic_json = requests.post(url=url,headers=headers,data=data).json()     #在确认响应是json类型的才可以使用
    fp=open('./fanyi.json','w',encoding='utf-8')
    json.dump(dic_json,fp,ensure_ascii=False)    #里边有中文,所以设为False
    print('over!!')
简单使用
原文地址:https://www.cnblogs.com/pdun/p/10945555.html