import requests
response = requests.get('http://www.baidu.com/')
print(type(response))
print(response.status_code)
print(type(response.text))
print(response.text)
print(response.cookies) # 各种请求方式
import requests
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get') # 基本GET请求
import requests
response = requests.get('http://httpbin.org/get')
print(response.text) # 带参数GET请求
import requests
response = requests.get('http://httpbin.org/get?name=germey&age=22')
print(response.text) import requests
data = {
'name': 'germey',
'age': 22
}
response = requests.get('http://httpbin.org/get', params = data)
print(response.text) # 解析json
import requests
import json
response = requests.get('http://httpbin.org/get')
print(type(response.text))
print(response.json())
print(json.loads(response.text))
print(type(response.json())) # 获取二进制数据
import requests
response = requests.get('http://github.com/favicon.ico')
print(type(response.text), type(response.content))
print(response.text)
print(response.content) # 保存图片
import requests
response = requests.get('http://github.com/favicon.ico')
with open('1.ico', 'wb') as f:
f.write(response.content)
f.close() # 添加headers 不添加的话会请求失败的
import requests
response = requests.get('http://www.zhihu.com/explore')
print(response.text) import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
}
response = requests.get('http://zhihu.com/explore', headers = headers)
print(response.text) # 基本的POST请求
import requests
data = {'name': 'germey', 'age': 22}
response = requests.post('http://httpbin.org/post', data = data)
print(response.text) import requests
data = {'name':'germey', 'age':22}
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
}
response = requests.post('http://httpbin.org/post', data = data, headers = headers)
print(response.json()) # response属性
import requests
response = requests.get('http://www.jianshu.com')
print(type(response.status_code), response.status_code)
print(type(response.headers), response.headers)
print(type(response.cookies), response.cookies)
print(type(response.url), response.url)
print(type(response.history), response.history) # 文件上传
import requests
files = {'file':open('1.ico', 'rb')}
response = requests.post('http://httpbin.org/post', files = files)
print(response.text) # 获取cookie
import requests
response = requests.get('http://www.baidu.com')
print(response.cookies)
for key, value in response.cookies.items():
print(key + ' = ' + value) # 会话维持 模拟登陆(第一个例子,相当于在两个不同的浏览器请求页面,所以获取不到cookies,所以要用第二个session对象)
import requests
requests.get('http://httpbin.org/cookies/set/number/123456789')
response = requests.get('http://httpbin.org/cookies')
print(response.text) import requests
s = requests.session()
s.get('http://httpbin.org/cookies/set/number/123456789')
response = s.get('http://httpbin.org/cookies')
print(response.text) # 证书验证
import requests
response = requests.get('https://www.12306.cn')
print(response.status_code)
 import requests
from requests.exceptions import ConnectTimeout, HTTPError, ReadTimeout, RequestException
from requests.auth import HTTPBasicAuth
import urllib3 # 证书验证
# 消除警告(下面的HTTPS页面的请求如果不进行验证就会报警告)
urllib3.disable_warnings()
# verify=False 请求HTTPS页面的时候不进行证书验证,默认为True
response = requests.get('https://www.12306.cn', verify=False)
print(response.status_code) # 代理设置
proxies = {
"http": "http://127.0.0.1:9743",
"https": "https://127.0.0.1:9743",
}
response = requests.get("https://www.taobao.com", proxies = proxies)
print(response.status_code) # 代理有用户名和密码的情况
proxies = {
"http": "http://user:password@127.0.0.1:9743/",
}
response = requests.get("https://www.taobao.com", proxies = proxies)
print(response.status_code) # socks代理
proxies = {
"http": "socks5://127.0.0.1:9742",
"https": "socks5://127.0.0.1:9742",
}
response = requests.get("https://www.taobao.com", proxies = proxies)
print(response.status_code) # 超时设置
try:
response = requests.get("http://httpbin.org/get", timeout=0.2)
print(response.status_code)
except ConnectTimeout:
print("timeout!") # 认证设置 下面两种方法都可以
response = requests.get("http://120.27.34.24:9001", auth=HTTPBasicAuth("user", ""))
print(response.status_code) response = requests.get("http://120.27.34.24:9001", auth=("user", ""))
print(response.status_code) # 异常处理
try:
response = requests.get("http://httpbin.org/get", timeout=0.2)
print(response.status_code)
except ConnectTimeout:
print("timeout!")
except RequestException:
print("RequestException!")
except HTTPError:
print("HttpError!")
except ReadTimeout:
print("ReadTimeout")
 import requests
response = requests.get("http://www.baidu.com")
print(response.cookies)
print("----------")
# 把cookie对象转化为字典
d = requests.utils.dict_from_cookiejar(response.cookies)
print(d)
print("----------")
# 把字典转化为cookie对象
print(requests.utils.cookiejar_from_dict(d))
 # url解码
print(requests.utils.unquote("http://tieba.baidu.com/f?kw=%D2%D7%D3%EF%D1%D4&fr=ala0&tpl=5", encoding="gb18030"))
# url编码
print(requests.utils.quote("http://tieba.baidu.com/f?kw=%D2%D7%D3%EF%D1%D4&fr=ala0&tpl=5"))

Python爬虫之Requests库的基本使用的更多相关文章

  1. Python爬虫之requests库介绍(一)

    一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...

  2. python爬虫之requests库

    在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用reque ...

  3. Python爬虫:requests 库详解,cookie操作与实战

    原文 第三方库 requests是基于urllib编写的.比urllib库强大,非常适合爬虫的编写. 安装: pip install requests 简单的爬百度首页的例子: response.te ...

  4. Python爬虫之requests库的使用

    requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 "HTTP for ...

  5. 【Python爬虫】Requests库的基本使用

    Requests库的基本使用 阅读目录 基本的GET请求 带参数的GET请求 解析Json 获取二进制数据 添加headers 基本的POST请求 response属性 文件上传 获取cookie 会 ...

  6. python爬虫(1)requests库

    在pycharm中安装requests库的一种方法 首先找到设置 搜索然后安装,蓝色代表已经安装 requests库中的get请求 与HTTP协议相对应,requests库也有七种请求方式. 获取ur ...

  7. python爬虫之requests库介绍(二)

    一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...

  8. Python爬虫系列-Requests库详解

    Requests基于urllib,比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求. 实例引入 import requests response = requests.get( ...

  9. python下载安装requests库

    一.python下载安装requests库 1.到git下载源码zip源码https://github.com/requests/requests 2.解压到python目录下: 3.“win+R”进 ...

随机推荐

  1. 【Spark篇】---SparkStream初始与应用

    一.前述 SparkStreaming是流式处理框架,是Spark API的扩展,支持可扩展.高吞吐量.容错的实时数据流处理,实时数据的来源可以是:Kafka, Flume, Twitter, Zer ...

  2. 如何为ASP.NET Core的强类型配置对象添加验证

    原文: Adding validation to strongly typed configuration objects in ASP.NET Core 作者: Andrew Lock 译文: La ...

  3. asp.net core系列 36 WebAPI 搭建详细示例

    一.概述 HTTP不仅仅用于提供网页.HTTP也是构建公开服务和数据的API强大平台.HTTP简单灵活且无处不在.几乎任何你能想到的平台都有一个HTTP库,因此HTTP服务可以覆盖广泛的客户端,包括浏 ...

  4. Mac版AppStore无法下载、升级错误处理

    在mac版本AppStore下载软件的时候,有时会出现"This item is temporarily unavailable, Try again later"错误提示,当然等 ...

  5. 深入理解Spring IOC工作原理

    为什么会出现spring,spring出现解决了什么问题? 1.分析普通多层架构存在的问题 JSP->Servlet->Service->Dao 层与层之间的依赖很强,属于耦合而且是 ...

  6. PyQt:无边框自定义标题栏及最大化最小化窗体大小调整

    环境 Python3.5.2 PyQt5 陈述 隐藏掉系统的控制栏,实现了自定义的标题控制栏,以及关闭/最大化/最小化的功能,自由调整窗体大小的功能(跟随一个大佬学的),代码内有详细注释 只要把Mai ...

  7. HUSTOJ:5500 && 洛谷:P1412:经营与开发

    题目描述 4X概念体系,是指在PC战略游戏中一种相当普及和成熟的系统概念,得名自4个同样以“EX”为开头的英语单词.eXplore(探索)eXpand(拓张与发展)eXploit(经营与开发)eXte ...

  8. Django中的模板渲染是什么

    首先建立一个页面 在views.py中增加一个方法 配置URL 如何实现的呢 这就是渲染,传递的数据不同显示的数据也不同.Django里的渲染引擎和Jinja的虽然不同但是语法基本通用.现在明白什么叫 ...

  9. 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(4)- Flashloader初体验(blhost)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Flashloader. 在上一篇文章 Serial Downloader模式(sdphost, mf ...

  10. [Redux] redux之combineReducers

    combineReducers combineReducer 是将众多的 reducer 合成通过键值映射的对象,并且返回一个 combination 函数传入到 createStore 中 合并后的 ...