Python爬虫之Requests库的基本使用
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库的基本使用的更多相关文章
- Python爬虫之requests库介绍(一)
一:Requests: 让 HTTP 服务人类 虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 ...
- python爬虫之requests库
在python爬虫中,要想获取url的原网页,就要用到众所周知的强大好用的requests库,在2018年python文档年度总结中,requests库使用率排行第一,接下来就开始简单的使用reque ...
- Python爬虫:requests 库详解,cookie操作与实战
原文 第三方库 requests是基于urllib编写的.比urllib库强大,非常适合爬虫的编写. 安装: pip install requests 简单的爬百度首页的例子: response.te ...
- Python爬虫之requests库的使用
requests库 虽然Python的标准库中 urllib模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests宣传是 "HTTP for ...
- 【Python爬虫】Requests库的基本使用
Requests库的基本使用 阅读目录 基本的GET请求 带参数的GET请求 解析Json 获取二进制数据 添加headers 基本的POST请求 response属性 文件上传 获取cookie 会 ...
- python爬虫(1)requests库
在pycharm中安装requests库的一种方法 首先找到设置 搜索然后安装,蓝色代表已经安装 requests库中的get请求 与HTTP协议相对应,requests库也有七种请求方式. 获取ur ...
- python爬虫之requests库介绍(二)
一.requests基于cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们 ...
- Python爬虫系列-Requests库详解
Requests基于urllib,比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求. 实例引入 import requests response = requests.get( ...
- python下载安装requests库
一.python下载安装requests库 1.到git下载源码zip源码https://github.com/requests/requests 2.解压到python目录下: 3.“win+R”进 ...
随机推荐
- JDBC编程,从入门到精通
今天突然想多说两句,刚刚在知乎看到一个人说,在当今世界,没有技术型驱动的公司,全都是业务型.即便是表面上看似技术型公司,其本质还是为了服务业务.这段话推翻了我以前关于编程的所有看法,觉得颇有道理.下面 ...
- Spark中SQL列和并为一行
在使用数据库的时候,需要将查询出来的一列按照逗号合并成一行. 原表名字为 TABLE ,表中的部分原始数据为: +---------+------------------------+ | BASIC ...
- 虎牙数万主播同时在线直播的秘密,CDN推流日志上行实时监控
6 月 10 日,又拍云 Open Talk | 2018 音视频技术沙龙·深圳站 顺利落幕,来自虎牙的直播运维研发架构师张波在沙龙上做了<基于CDN推流日志的主播上行实时监控及其自动化解密&g ...
- MetaEditor中MQL使用方法
MT4程序--帮助--MQL5文档,转到网页,切换到中文,点击旁边搜索图标. MetaEditor编辑器,点击相应关键字,按F1键,即可启动MT4对应的MQL4的对应关键字用法帮助.但是英文. 时间序 ...
- asp.net core系列 40 Web 应用MVC 介绍与详细示例
一. MVC介绍 MVC架构模式有助于实现关注点分离.视图和控制器均依赖于模型. 但是,模型既不依赖于视图,也不依赖于控制器. 这是分离的一个关键优势. 这种分离允许模型独立于可视化展示进行构建和测试 ...
- asp.net core 系列 13 日志
一.概述 ASP.NET Core 支持适用于各种内置和第三方日志记录, 供程序的日志记录 API,本文介绍了如何将日志记录 API 与内置提供程序一起使用.对于第三方日志记录提供程序使用,文章最后有 ...
- ansible学习系列1-ansible简介
1.ansible简介 官方说明:Ansible is an IT automation tool. It can configure systems, deploy software, and or ...
- 设计模式总结篇系列:桥接模式(Bridge)
在实际类设计过程中,有时会遇到此类情况:由于实际的需要,某个类具有两个或两个以上的维度变化,如果利用继承将每种可能的变化情况都定义成一个类,一是会导致类膨胀的问题,二是以后不太好维护和并且违背类的设计 ...
- 解读经典《C#高级编程》泛型 页114-122.章4
前言 本章节开始讲解泛型..Net从2.0开始支持泛型,泛型不仅是C#的一部分,也与IL代码紧密集成.所以C#中泛型的实现非常优雅.相对于C#,Java是后期引入的泛型,受限于最初的设计架构,就实现的 ...
- 用javaweb连接数据库用javabean、severlet实现增删改查
样 很重要的一点是建立数据库的连接 数据库是一切操作的前提 不管是增加 删除 修改 查询 都需要调用数据库连接程序 再就是java的类的编写 写完类后需要对其进行增删改查方法的 编写 这是dao层的 ...