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”进 ...
随机推荐
- BBS论坛(十一)
11.1.前台用户模型创建 (1)apps/front/models.py 首先安装:pip install shortuuid class FrontUser(db.Model): __tablen ...
- Java8 新特性 | 如何风骚走位防止空指针异常
文章整理翻译自 https://winterbe.com/posts/2015/03/15/avoid-null-checks-in-java/ 文章首发于个人网站: https://www.exce ...
- Python爬虫入门教程 21-100 网易云课堂课程数据抓取
写在前面 今天咱们抓取一下网易云课堂的课程数据,这个网站的数据量并不是很大,我们只需要使用requests就可以快速的抓取到这部分数据了. 你第一步要做的是打开全部课程的地址,找出爬虫规律, 地址如下 ...
- mpvue微信小程序多列选择器用法:实现省份城市选择
前言 微信小程序默认给我们提供了一个省市区的picker选择器,只需将mode设置为region即可 <picker mode="region" bindchange=&qu ...
- 分享:Java 开发精美艺术二维码
博客地址:https://ainyi.com/58 Java 开发精美艺术二维码 看到网络上各种各样的二维码层出不穷,好像很炫酷的样子,一时兴起,我也要制作这种炫酷二维码效果 例如: 根据以往例子 根 ...
- Android APK 签名文件MANIFEST.MF、CERT.SF、CERT.RSA分析
首先我们找一个已经签名的apk文件,修改后缀名为zip,然后解压.可以看到里面有一个META-INF文件夹,里面就是签名验证的文件.有三个文件MANIFEST.MF.CERT.SF.CERT.RSA分 ...
- 【转】三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别
关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个 ...
- Java学习笔记之——IO
一. IO IO读写 流分类: 按照方向:输入流(读),输出流(写) 按照数据单位:字节流(传输时以字节为单位),字符流(传输时以字符为单位) 按照功能:节点流,过滤流 四个抽象类: InputStr ...
- 表单提交前,判断webuploader是否上传
function busUpLoadImg(postUrl,id) { .......//省略部分不用修改 uploader.on('uploadSuccess', function(file) { ...
- HTML之body标签中的相关标签
一 字体标签 字体标签包含:h1~h6.<font>.<u>.<b>.<strong><em>.<sup>.<sub& ...