• 爬虫请求库之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!!')
    简单使用
  • 相关阅读:
    【spring-boot】spring-boot 事物管理——之注解@Transactional
    【spring-boot】Spring-boot学习-helloWorld
    【Maven】failOnMissingWebXml
    【java基础领域】高内聚、低耦合理解
    Pascal's Triangle
    Remove Nth Node From End of List
    Valid Palindrome
    Longest Common Prefix
    Roman to Integer
    Palindrome Number
  • 原文地址:https://www.cnblogs.com/pdun/p/10945555.html
Copyright © 2020-2023  润新知