• python爬虫笔记(1-1)requests模块:请求数据获取响应内容


     
    requests 继承了urllib2的所有特性,比urllib简洁高效
    requests所有功能都能通过"requests/api.py"中的方法访问
     
    1、安装:
    pip install requests
     
    2、get请求:
    封装链接中的参数,请求时用params参数进行传递
    url = "http://www.baidu.com"
    resp = requests.get(url,params=,headers=)
     
    3、post请求:
    发送的数据必须放在字典中,通过data参数进行传递
    url = "http://www.baidu.com"
    resp = requests.post(url,data=,headers=)
     
    4、查看响应内容:
    print (resp.text ) # resp.text 返回的是Unicode格式的数据
    print(resp.json()) # res.json() 返回的是json格式的数据
    print(resp.content) # resp.content返回的字节类型数据
    print (resp.url) # 查看完整url地址
    print (resp.encoding) # 查看响应头部字符编码
    print(resp.status_code) # 查看响应码
    print(resp.cookies) # 查看返回的cookies
    print(resp.r.elapsed) #响应速度,从发送请求到响应到达所需要的时间
     
    5、Cookies
    import requests
    url = "http://www.baidu.com"
    resp = requests.get(url)
    cookiejar = resp.cookies # 返回cookies对象
    cookiedic = requests.utils.dict_from_cookiejar(cookiejar) # 将cookies转为字典
     
    6、Sission
    说明
    1、发送请求前先创建一个session会话,将请求到的cookies存入session中
    2、程序的请求要一直使用session.get/post,以保证cookies在程序中的传递
    3、程序的请求如果使用requests.get/post需要在参数中增加headers{"cookie:":"****"},否则请求会报错,因为requests.get/post每次执行都会重新开启一个新的请求,丢失已获取的cookies
    例子:登录17小说网拿到书架数据
    import requests
    session = requests.session() # 创建会话(session),将cookie存入session中
    data = {
    "loginName": "1***7",
    "password": "1***5"
    }
    url = "https://passport.17k.com/ck/user/login"
    resp1 = session.post(url,data=data) # 登录,获取cookies
    # 拿着获取到的cookies,请求到书架上的数据
    resp2 = session.get("https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919")
    print(resp2.json())
     
    7、防盗链处理
    防盗链,本质上是溯源,即本次请求的上一次请求,请求时将referer地址加上即可
    header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36",
    "Referer":"https://www.pearvideo.com/video_1734919" # 防盗链:溯源,确认当前请求的上一级
    }
     

  • 相关阅读:
    NLP 基础问题及解析
    linux 命令精简
    linux 文件属性及操作
    linux 文件编辑命令vim
    NLP attention 简述
    数据结构
    2020 走进新时代
    条件随机场CRF 摘要
    linux的jdk、tomcat、tomcat安装等
    VMware所在磁盘满了、linux中date修改、ssh、eclipse的使用问题等
  • 原文地址:https://www.cnblogs.com/testerhappy/p/15108517.html
Copyright © 2020-2023  润新知