zoukankan      html  css  js  c++  java
  • 1_requests基础用法

    requests模块的基本使用

    • 什么是requests模块?
    • Python中封装好的一个基于网络请求的模块

    requests模块的作用?

    • 用来模拟浏览器发请求

    requests模块的环境安装:

    • pip install requests

    requests模块的编写流程:

    1. 指定url
    2. 发起请求:(1) Get(url, params, headers)(2) Post(url, data, headers)
    3. 获取响应数据
    4. 持久化存储
    import requests
    #1.指定url
    url = 'https://www.sogou.com/'
    #2.请求发送get,get发返回值是一个响应对象
    response = requests.get(url=url)
    #3.获取响应数据
    page_text = response.text #返回的是字符串形式的响应数据
    #4.持久化储存
    with open('sogou.html','w',encoding='utf-8') as fp:
        fp.write(page_text)

    参数动态化

    • 有些情况下我们是需要将请求参数进行更改,将get或者post请求对应的请求参数封装到一个字典(键值对=请求参数)中,然后将字典作用到get方法的params参数中或者作用到post方法的data参数中

    UA检测(反爬机制):

    • 请求载体的身份标识,服务器端会检测请求的UA来鉴定其身份。
    • 反反爬策略:UA伪装,通过抓包工具捕获某一款浏览器的UA值,封装到字典中,且将该字典作用到headers参数中

     

    import requests
    
    url = 'https://www.sogou.com/web'
    #实现参数动态化
    wd = input('enter a key:')
    params = {
        'query':wd
    }
    #解决UA检测
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'
    }
    #在请求中需要将请求参数对应的字典作用到params这个get方法的参数中
    response = requests.get(url=url,params=params,headers=headers)
    response.encoding = 'utf-8'#修改响应数据的编码格式,不加这行会出现乱码
    page_text = response.text
    #持久化存储
    fileName = wd+'.html'
    with open(fileName,'w',encoding='utf-8') as fp:
        fp.write(page_text)

     

  • 相关阅读:
    sqli-libs(3)
    python学习之路(18)
    BZOJ3534:[SDOI2014]重建——题解
    洛谷省选斗兽场全通关祭~以及之后的打算!
    BZOJ4596:[SHOI2016]黑暗前的幻想乡——题解
    BZOJ2732:[HNOI2012]射箭——题解
    BZOJ1486:[HNOI2009]最小圈——题解
    BZOJ4552:[HEOI2016/TJOI2016]排序——题解
    BZOJ2830 & 洛谷3830:[SHOI2012]随机树——题解
    BZOJ4889 & 洛谷3759:[TJOI2017]不勤劳的图书管理员——题解
  • 原文地址:https://www.cnblogs.com/MRASdoubleZ/p/13888654.html
Copyright © 2011-2022 走看看