官方文档链接(中文)

https://2.python-requests.org/zh_CN/latest/

requests  基于  urllib3 ,python编写。

安装 pip install requests  (python3)

anaconda 版本 用pip安装  要在 anaconda prompt 里打入安装命令

提示Requirement already satisfied: requests in xxxxxx  表示 已经安装了

import requests

response=requests.get('http://www.baidu.com')
#打印类型
print(type(response))
#打印状态码
print(response.status_code)
#打印网页源码类型
#字符串类型,不需要decode(区别于urllib)
print(type(response.text))
#打印网页源码
print(response.text)
#打印cookie
print(response.cookies)

requests.get

import requests

data={'name':'germey',
'age':22}
response=requests.get('http://httpbin.org/get',params=data)
print(response.text)
输出结果:
{
"args": {
"age": "22",
"name": "germey"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.21.0"
},
"origin": "xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx",
"url": "https://httpbin.org/get?name=germey&age=22"
}
可以看到,在原始网站上增加了
?name=germey&age=22
问号后的便是params数据

解析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()))
输出结果:
<class 'str'>
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': xxx.xxx.xxx.xxx 'url': 'https://httpbin.org/get'}
{'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.21.0'}, 'origin': 'xxx.xxx.xxx.xxx 'url': 'https://httpbin.org/get'}
<class 'dict'>

可以看到用json解析后的为字典类型


获取二进制文件
#获取二进制文件

import requests

response=requests.get('https://github.com/favicon.ico')
print(type(response.content)) #保存二进制文件
with open('favicon.ico','wb') as f:
f.write(response.content) #将response.content写入favicon.ico
f.close() #关闭文件 #favicon.ico为文件名
#wb参数中w表示写入,b表示二进制文件,r表示读取。


headers
import requests

#返回200
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0'
}
response=requests.get('https://www.zhihu.com/explore',headers=headers)
print(response.status_code) #返回400
response=requests.get('https://www.zhihu.com/explore')
print(response.status_code)

User-Agent表示的是 浏览器的客户端信息

http://www.useragentstring.com/

中可以查询


#响应的属性

response=requests.get('http://www.baidu.com')

print(response.status_code)

print(response.headers)

print(response.cookies)

print(response.url)

print(response.history)



#文件上传

files={'file':open('favicon.ico','rb')}

response=requests.post('http://httpbin.org/post',files=files)

print(response.text)

#获取cookies

import requests

response=requests.get('http://www.baidu.com')

print(response.cookies)

for key,value in response.cookies.items():
     print(key+ '=' + value)

#其他

#代理设置样例,根据选择需要其中一种
proxies={
"http":"http://user:password@xxx.xxx.xxx.xxx:xxxx/:
}
proxies={
"http":"socks5://xxx.xxx.xxx.xxx:xxxx",
"https":"socks5://xxx.xxx.xxx.xxx:xxxx"
}
proxies={
"http":"http://xxx.xxx.xxx.xxx:xxxx",
"https":"https://xxx.xxx.xxx.xxx:xxxx"
}
r=requests.get('url',proxies=proxies,timeout=1)
#timeout表示超时设置。单位为秒
#超出时间,将会终端程序
#使用try except
from requests.exceptions import ReadTimeout
try:
r=requests.get('url',proxies=proxies,timeout=1)
print(r.status_code)
except ReadTimeout:
print('timeout')
#认证设置

import requests
from requests.auth import HTTPBasicAuth
r=requests.get('http://xxx.xxx.xxx.xxx:xxxx')
print(r.status_code) #返回401表示需要认证 r=requests.get('http://xxx.xxx.xxx.xxx:xxxx',auth=('user','passwd')
print(r.status_code)

python3爬虫之requests库基本使用的更多相关文章

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

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

  2. python爬虫之requests库

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

  3. 爬虫相关--requests库

    requests的理想:HTTP for Humans 一.八个方法 相比较urllib模块,requests模块要简单很多,但是需要单独安装: 在windows系统下只需要在命令行输入命令 pip ...

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

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

  5. Python爬虫之requests库的使用

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

  6. 【Python爬虫】爬虫利器 requests 库小结

    requests库 Requests 是一个 Python 的 HTTP 客户端库. 支持许多 HTTP 特性,可以非常方便地进行网页请求.网页分析和处理网页资源,拥有许多强大的功能. 本文主要介绍 ...

  7. 爬虫值requests库

    requests简介 简介 Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库 ,使用起来比urllib简洁很多 因为是第三方库, ...

  8. (爬虫)requests库

    一.requests库简介 urllib库和request库的作用一样,都是服务器发起请求数据,但是requests库比urllib库用起来更方便,它的接口更简单,选用哪种库看自己. 如果没有安装过这 ...

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

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

随机推荐

  1. python mysql使用问题

    (deeplearning2) userdeMBP:ageAndGender user$ python Python |Anaconda, Inc.| ( , ::) [GCC Compatible ...

  2. Arduino---ESP8266 WIFI模块

    一:Arduino安装ESP8266 https://www.arduino.cn/thread-76029-1-1.html(内容截图如下:最简单方法) 选用NodeMCU .0即可 二:简单测试 ...

  3. 讲sql注入原理的 这篇不错(有空可以看看)

    我们围绕以下几个方面来看这个问题: 1.什么是sql注入? 2.为什么要sql注入? 3.怎样sql注入? 1.什么是sql注入? 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或 ...

  4. Java使用PegDown将markdown文件转成html格式

    maven依赖: <dependency> <groupId>org.pegdown</groupId> <artifactId>pegdown< ...

  5. ADFS RelayState

    https://blogs.technet.microsoft.com/askds/2012/09/27/ad-fs-2-0-relaystate/ 什么是RelayState,我为什么要关心?有两种 ...

  6. 讲不明白自杀系列:KMP算法

    算法:KMP排序 算法分析 KMP算法是一种快速的模式匹配算法.KMP是三位大师:D.E.Knuth.J.H.Morris和V.R.Pratt同时发现的,所以取首字母组成KMP. 少部分图片来自孤~影 ...

  7. 共享文件word / excel /ppt 被用戶自己锁定无法编辑-解決方法

    共享文件word / excel /ppt 被用戶自己鎖定無法編輯,但用戶嘗試過關閉所有文件和重啓過系統,依然無法編輯. 搜到解決方法: Just in case someone looking fo ...

  8. 【C/C++开发】运算符重载二

    C++中预定义的运算符的操作对象只能是基本数据类型.但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作.这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类 ...

  9. 【数据库开发】Redis数据库设置密码

    redis配置密码1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 ? 1 #requirepass foobared 去掉行前的注释 ...

  10. eclipse设置html js css自动提示

    eclipse也可以像Visual Studio 2008那样完全智能提示HTML/JS/CSS代码,使用eclipse自带的插件,无需另外安装插件,具体步骤如下 1.打开eclipse→Window ...