Python爬虫---requests库快速上手
一、requests库简介
requests是Python的一个HTTP相关的库
requests安装:
pip install requests
二、GET请求
import requests # 首先导入reqeusts模块 res = requests.get( # 使用requests模拟浏览器发送一个get请求
url="https://www.baidu.com", # 指定访问的网址
) # 打印响应内容:网站的源代码
print(res.text) # 打印二进制响应内容;我们在拉取音乐、视频等使用
print(res.content)
reqeusts初体验
我们发送get请求时,如果URL参数需要携带参数,那么数据会以键/值对的方式置于URL中,跟在一个问号的后面,例如:ttps://www.baidu.com/s?wd=hello
import requests #get请求,携带参数信息
#http://httpbin.org/get?key1=value1&key2=value2
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload) print(r.text)
get请求url携带参数
你还可以将一个列表作为值传入:
#http://httpbin.org/get?key1=value1&key2=value2&key2=value3
payload = {'key1': 'value1', 'key2': ['value2', 'value3']}
r = requests.get("http://httpbin.org/get", params=payload)
传输多个值得时候
三、POST请求
通常,如果你想要发送一些编码为表单形式得数据的时候,只需要简单的给request的data传递一个字典即可。你的数据在发送请求时会自动编码为表单形式:
import requests
payload = {'key1': 'value1', 'key2': 'value2'}
# 类似我们的请求体中的数据
r = requests.post("http://httpbin.org/post", data=payload)
print(r.text)
post请求
很多时候,你想发送出去的数据并非编码为表单形式,如果你想传输一个json字符串,而不是一个字典,那么数据会被直接发送过去
例如,Github API v3 接受编码为 JSON 的 POST/PATCH 数据:
import requests
import json payload = {'some': 'data'}
url = 'https://api.github.com/some/endpoint'
r = requests.post(url, data=json.dumps(payload)) print(r.text)
post请求发送一个json字符串
四、requests参数总结
:param method: 请求方法
:param url: 目标地址的URL
:param params: 请求参数:可以是字符串、字节、字典
:param data: 可以是字典、字符串、字节、文件对象,发送的时候会在请求体中携带
:param json: 将json中对应的数据进行序列化成一个字符串,在请求体中发送给服务器,并且Content-Type是 {'Content-Type': 'application/json'}
:param headers: 请求头数据
:param cookies: 请求携带的cookie
:param files: 向服务器发送文件数据
:param auth: Auth tuple以启用基本的/摘要/自定义http auth。
:param timeout: 等待服务器响应时间,可以是浮点数
:param allow_redirects: 是否允许自动重定向,True(默认),Flase
:param proxies: 字典映射协议到代理的URL。
:param verify: 控制我们是验证服务器的TLS证书,还是字符串,在这种情况下,它必须是CA包的路径才能使用。默认为“True”。
:param stream: 是否以流的形式读取服务器传来的数据
:param cert: 如果是字符串,则为SSL客户端证书文件(.pem)的路径。如果是元组,(‘cert’,‘key’)对。
五、响应
import requests
import json payload = {'some': 'data'}
url = 'https://api.github.com/some/endpoint'
r = requests.post(url, data=json.dumps(payload)) # 获取响应头
print(r.headers)
print(r.headers['Content-Type']) # 'application/json'
print(r.headers.get('content-type')) # 'application/json' # 获取响应cookie
print(r.cookies['example_cookie_name'])
print(r.cookies.get_dict()) # 获取响应体
print(r.text)
# 获取响应体(二进制形式)
print(r.content) # 重定向与请求历史
print(r.url)
print(r.status_code) # 响应状态码
print(r.history) # json响应内容
print(r.json()) # [{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...
Python爬虫---requests库快速上手的更多相关文章
- Python爬虫—requests库get和post方法使用
目录 Python爬虫-requests库get和post方法使用 1. 安装requests库 2.requests.get()方法使用 3.requests.post()方法使用-构造formda ...
- Python爬虫--Requests库
Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库,requests是python实现的最简单易用的HTTP库, ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- Python爬虫 requests库基础
requests库简介 requests是使用Apache2 licensed 许可证的HTTP库. 用python编写. 比urllib2模块更简洁. Request支持HTTP连接保持和连接池,支 ...
- python爬虫---requests库的用法
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下 ...
- python爬虫——requests库使用代理
在看这篇文章之前,需要大家掌握的知识技能: python基础 html基础 http状态码 让我们看看这篇文章中有哪些知识点: get方法 post方法 header参数,模拟用户 data参数,提交 ...
- Python 爬虫-Requests库入门
2017-07-25 10:38:30 response = requests.get(url, params=None, **kwargs) url : 拟获取页面的url链接∙ params : ...
- python之requests模块快速上手
安装 pip3 install requests 使用 发送请求 import requests r = requests.get('http://www.baidu.com') 还可以如下方式发送不 ...
- python中requests库使用方法详解
目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...
随机推荐
- 51nod 1483 化学变换 | 二进制 暴力
51nod 1483 化学变换 题面 给出n个整数(n <= 1e5,每个数 <= 1e5),对每个数都可以进行多次操作,操作有两种:乘二/整除以二. 问最少经过多少次操作能使所有数相等. ...
- 【bzoj3926】 Zjoi2015—诸神眷顾的幻想乡
http://www.lydsy.com/JudgeOnline/problem.php?id=3926 (题目链接) 题意 给出一棵树,每个节点有一个编号,范围在${[0,9]}$.一个序列是指树上 ...
- 如何将现有 git 仓库中的子项目单独抽出来作为一个独立仓库并保留其提交历史
很多时候,我们会遇到在一个git仓库下包含了很多小项目,但是随着有些项目的需求逐渐增大或则市场需求,我们需要将其抽离出来,作为一个单独的项目进行维护并开发. 但是,如果直接拷贝文件粘贴到新建的git ...
- bzoj 3853 : GCD Array
搬运题解Claris:1 n d v相当于给$a[x]+=v[\gcd(x,n)=d]$ $\begin{eqnarray*}&&v[\gcd(x,n)=d]\\&=& ...
- ACM比赛_注意
ACM比赛_注意: 比赛前: 1.前一天早一点睡觉 2.避免参加激烈的活动,以免比赛时精力不足; 3.少喝水,并提前上厕所; 4.把账号,密码都准备好,放在txt中 5.提前创建多个程序(etc.10 ...
- django中的认证与登录
认证登录 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1 authenticate(**credentials) 提供了用户认证,即验证用户名以及密码是否 ...
- Ansible4:Ad-hoc与命令执行模块
目录 Ad-hoc 命令说明 后台执行 命令执行模块 command模块 script模块 Ad-Hoc 是指ansible下临时执行的一条命令,并且不需要保存的命令,对于复杂的命令会使用playbo ...
- TCP、UDP绑定同一端口通信的解释
昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信. 在印象当中我记得是可以的,今日google了相关资料, 确定以及肯定的: TCP.UDP可以绑定同一端口来进行通信: 网络中可以被命名和 ...
- 数据分析与展示---Pandas库入门
简介 一:Pandas库的介绍 二:Pandas库的Series类型 (一)索引 (1)自动索引 (2)自定义索引 (二)Series类型创建 (1)列表创建 (2)标量值创建 (3)字典类型创建(将 ...
- echarts地图扩展___自定义的svg图
echarts的自定义地图 标签引入js文件 <script type="text/javascript" src="echarts/require.js" ...