# coding = utf-8
"""
同urllib一样
requests 也是发送http请求的第三方库 兼容Python2和3
实现了http的绝大部分功能。 安装 pip install requests
""" # 1.requests发送请求
"""
同直接同requests.get/post来指定发送请求的方式
pycharm环境下,可通过alt+鼠标点击进入源代码,可观察requests的相关参数
"""
# import requests
# 请求百度页面
# response = requests.get('http://www.baidu.com')
# print(response)
# 打印响应内容,也可通过debug来查看response对象里面包含的值
# 请求返回值是一个Response对象,是对HTTP协议中服务端返回给客户端响应数据的封装
# 包括状态码,响应头,响应体 # 显示状态码
# code = response.status_code # 状态码 # 响应头信息
# for key, value in response.headers.items():
# print('{}:{}'.format(key, value)) # 响应体
# print(response.content)
# content返回原始数据,字节串,bytes类型,一般图片、音频、视频数据,就用content
# 可通过response.content.decode()解码,默认utf-8解码,将字节串转码为字符串 # print(response.text)
# 返回文本数据, str类型,是经过转码的数据,但是文本中的中文可能出现乱码 # 显示请求网页的编码方式
# print(response.encoding) # 一般为ISO-8859 # 设置网页编码方式
# response.encoding = 'utf-8'
# 因为网页默认编码为ISO8859,所以显示中文的时候,可能乱码,
# 因此通过以上方法设置编码为utf-8,可解决中文乱码问题 # 2.requests请求url传参
"""
通过对url传参,拼接字符串,因此请求变为http://www.baidu.com/s?wd=python
"""
# import requests
# get请求的传参
# parms = {'wd': 'python'}
# response = requests.get('http://www.baidu.com/s?', parms=parms) # post请求的传参,此处的url为测试网站
# 同get一样,参数类型也是字典格式
# data = {'key1': 2, 'key3': 3}
# r = requests.post('http://httpbin.org/post', data=data)
# print(r.text) # 3.requests中的超时设置
# import requests
# 设置超时时间为5秒,若5s内目标地址没有响应,则抛出异常
# requests.get('https://www.google.com', timeout=5) # 4.request中的cookies处理
"""
通过requests请求目标网站,返回值中自动携带cookies
可通过response.cookies查看
可将返回的cookie保存下来,然后下一次访问时携带上即可
例:
cookie = response.cookies
下次请求时:resquest.get(xxx.xxx, cookies=cookie)即可携带上次访问
页面时返回的cookie信息
"""
# import requests
# params = {'wd':"python"}
# response = requests.get('http://www.baidu.com/s?', params=params)
# print(response.cookies) #5.requests中的会话--session
"""
http协议是一种无状态协议,无法保持会话状态,因此出现cookies,访问时携带cookie信息,
即可保持上一次会话的信息,requests中返回值中携带cookies信息,但是下次访问时需要
手动传入,依旧不方便,因此出现session,它会自动保存cookies信息,
并在下一次访问中自动传入
访问网页的方式基本和requests相同
"""
# import requests
# 构建一个会话 api基本和requests相同,后面的访问操作都通过该会话进行
# session = requests.session()
# 请求方式和request相同
# session.get('http://www.baidu.com') #6.requests中的ssl 认证
"""
部分网站请求时需要证书,因此需要对证书进行一定处理
设置verify=False来设定请求网站时不验证证书
同样的,通过设置verify=True设置请求时验证证书
"""
# import requests
# r = requests.get('https://www.jianshu.com', verify=False) # 7.requests伪装浏览器访问目标网站
"""
部分网站会识别是通过代码请求还是人来请求的,requests中同样提供将请求伪装为
浏览器的接口, 通过headers传参即可 因为知乎在未登录时,会自动跳转到登录页面
通过allow_redirects=False设置不跳转
"""
# import requests
# headers = {
# 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
# }
# r = requests.get('http://www.zhihu.com', verify=False,
# headers=headers, allow_redirects=False) #
# 8.requests中的代理设置
# import requests
# 将代理设置为如下格式,参数传入即可
# proxies = {
# 'http': 'http://10.11.12.13:1234',
# 'https': 'http://10.11.12.13:1234',
# }
# requests.get("http://httpbin.org/ip", proxies=proxies) # 9. json
"""
将json格式数据转成字典格式,前提是目标网站返回值是json格式的
因此该方法用的也很少
"""
# import requests
# url = 'http://www.baidu.com'
# r = requests.get(url)
# print(r.json())

requests请求库的更多相关文章

  1. 爬虫(一)—— 请求库(一)requests请求库

    目录 requests请求库 爬虫:爬取.解析.存储 一.请求 二.响应 三.简单爬虫 四.requests高级用法 五.session方法(建议使用) 六.selenium模块 requests请求 ...

  2. 爬虫之requests请求库

    介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下 ...

  3. 爬虫之requests请求库高级应用

    1.SSL Cert Verification #证书验证(大部分网站都是https) import requests respone=requests.get('https://www.12306. ...

  4. requests请求库练习--GitHub登录

    # coding = utf-8 """ 结合抓包工具,采用两种方法模拟登录github直接利用session登录和利用requests登录 ""&q ...

  5. Python爬虫requests请求库

    requests:pip install  request 安装 实例: import requestsurl = 'http://www.baidu.com'response = requests. ...

  6. Selenium请求库

    阅读目录 一 介绍 二 安装 三 基本使用 四 等待元素被加载 五 选择器 六 元素交互操作 七 其他 八 项目练习 九 破解登录验证 一 介绍 1.selenium是什么? selenium最初是一 ...

  7. 爬虫请求库——requests

    请求库,即可以模仿浏览器对网站发起请求的模块(库). requests模块 使用requests可以模拟浏览器的请求,requests模块的本质是封装了urllib3模块的功能,比起之前用到的urll ...

  8. Python3 网络爬虫(请求库的安装)

    Python3 网络爬虫(请求库的安装) 爬虫可以简单分为几步:抓取页面,分析页面和存储数据 在页面爬取的过程中我们需要模拟浏览器向服务器发送请求,所以需要用到一些python库来实现HTTP的请求操 ...

  9. Python浅谈requests三方库

    requests 三方库用于获取URL资源 1.GET请求访问一个页面 import requests r = requests.get('https://www.cnblogs.com/xqxacm ...

随机推荐

  1. Flask解析(二):Flask-Sqlalchemy与多线程、多进程

    Sqlalchemy flask-sqlalchemy的session是线程安全的,但在多进程环境下,要确保派生子进程时,父进程不存在任何的数据库连接,可以通过调用db.get_engine(app= ...

  2. Oracle ADG环境搭建

    部署 环境介绍 1,软件安装前基础部署 (两台做同样操作) 1.1,关闭selinux和防火墙 因为centos7里面没有/etc/sysconfig/iptables这个配置文件所以我们首先用yum ...

  3. ASP.NET Core如何使用压缩中间件提高Web应用程序性能

    前言 压缩可以大大的降低我们Web服务器的响应速度,压缩从而提高我们网页的加载速度,以及节省一定的带宽. 何时使用相应压缩中间件 在IIS,Apache,Nginx中使用基于服务端的响应压缩技术.中间 ...

  4. Openmp编程练习

    火车卖票 // OpenMP2.cpp : 定义控制台应用程序的入口点. // #include "stdio.h" #include "omp.h" #inc ...

  5. Java 并发编程(四):如何保证对象的线程安全性

    01.前言 先让我吐一句肺腑之言吧,不说出来会憋出内伤的.<Java 并发编程实战>这本书太特么枯燥了,尽管它被奉为并发编程当中的经典之作,但我还是忍不住.因为第四章"对象的组合 ...

  6. Ajax自我总结

    一念起.万水千山皆有情. 一念灭.沧海桑田已无心.     ------ 随记 本文主要针对ajax原理介绍,很少涉及实例,主要用于对知识的梳理总结,方便以后学习和查询... Ajax 一.Ajax是 ...

  7. windows vscode 远程调试代码

    需要: vscode + Remote-ssh(vscode插件中下载) openssh (https://www.mls-software.com/files/setupssh-8.0p1-2.ex ...

  8. CVE-2019-17671:Wordpress未授权访问漏洞复现

    0x00 简介 WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客 ...

  9. [考试反思]0903NOIP模拟测试36:复始

    因为多次被说颓博客时间太长于是 真香 恢复粘排行榜的传统. 大体上就是,T1A的前三,剩下的T2A的排名,再然后按照T3暴力得分排名. T1是个暴力.3个A的5个得分的.数据点极强爆零率极高. 我的思 ...

  10. CSPS模拟 95

    T_T flag彻底倒了 虽然打一开始就没觉得能实现过 可是我好桑心T_T skyh那个没素质的还一直bb T_T