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. 【spring】ApplicationListener传递参数到页面(解决静态+动态资源路径+静态文件的缓存控制)

    一.相对路径还是绝对路径的问题 前端页面加载资源或者请求的时候到底是使用相对路径还是绝对路径,想必大家都很清楚,用的是当然是相对路径,因为这样增加了项目的灵活性,不需要经常的改动.那既然是相对路径就需 ...

  2. 如何为自己的pip包打造可以执行的系统命令

    1.我们在打包我们自己的Python Package的时候.我们不仅可以在代码中使用我们的package,而且可以添加一些可执行命令来执行自己的函数. 2 .我们应该怎么办呢? 1.首先新建目录以及文 ...

  3. 13.Django1.11.6文档

    第一步 入门 检查版本 python -m django --version 创建第一个项目 django-admin startproject mysite 运行 python manage.py ...

  4. 对vue源码的初步认识和理解

    根据vue的官网介绍,可以得知vue是一个mvvm框架,且是响应式的.为了更深入了理解其内涵,本人以及理解实现了一个简单的mvvm学习的demo.下面分享给大家,欢迎大家一起讨论. 一.mvvm至少包 ...

  5. PL/SQL基础语法入门

    先前安装了PL/SQL软件 PL/SQL全称为Procedural Language/SQL. PL/SQL也是一种程序语言,叫做过程化SQL语言,是Oracle数据库对SQL语句的扩展 打PL/SQ ...

  6. Spring Boot分布式系统实践【2】-框架搭建

    前言 技术选型已经做完,那就来搭建框架了. 首先基于mvc思想,设计这套框架也是基于此,也会设计Dao层.Service层.Controller层.视图层等,同时也要考虑到dubbo的调用原理.   ...

  7. 基于 Zookeeper 的分布式锁实现

    1. 背景 最近在学习 Zookeeper,在刚开始接触 Zookeeper 的时候,完全不知道 Zookeeper 有什么用.且很多资料都是将 Zookeeper 描述成一个“类 Unix/Linu ...

  8. linux centos6.5安装KVM

    1.安装kvm,vnc软件 http://www.server110.com/kvm/201404/10467.html yum install kvm,缺啥补啥 yum install kvm km ...

  9. Java线程创建形式 Thread构造详解 多线程中篇(五)

    Thread作为线程的抽象,Thread的实例用于描述线程,对线程的操纵,就是对Thread实例对象的管理与控制. 创建一个线程这个问题,也就转换为如何构造一个正确的Thread对象. 构造方法列表 ...

  10. Jenkins结合.net平台综合应用之通过SSH方式拉取代码

    上一节我们讲解了如何Jenkins如何通过轮训来监听git仓库变化然后拉取最新代码,上一节中我们使用的是https方式,然后正式环境中企业更倾向使用ssh方式.这里我们讲解一下如何通在Jenkins中 ...