官方文档链接(中文)

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  表示 已经安装了

  1. import requests
  2.  
  3. response=requests.get('http://www.baidu.com')
  4. #打印类型
  5. print(type(response))
  6. #打印状态码
  7. print(response.status_code)
  8. #打印网页源码类型
  9. #字符串类型,不需要decode(区别于urllib)
  10. print(type(response.text))
  11. #打印网页源码
  12. print(response.text)
  13. #打印cookie
  14. print(response.cookies)

requests.get

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

  1. 解析json

  1. import requests
  2. import json
  3.  
  4. response=requests.get('http://httpbin.org/get')
  5. print(type(response.text))
  6. #下面两句结果一样
  7. print(response.json())
  8. print(json.loads(response.text))
  9.  
  10. print(type(response.json()))
  1. 输出结果:
  1. <class 'str'>
  2. {'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'}
  3. {'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'}
  4. <class 'dict'>

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


  1. 获取二进制文件
  1. #获取二进制文件
  2.  
  3. import requests
  4.  
  5. response=requests.get('https://github.com/favicon.ico')
  6. print(type(response.content))
  7.  
  8. #保存二进制文件
  9. with open('favicon.ico','wb') as f:
  10. f.write(response.content) #将response.content写入favicon.ico
  11. f.close() #关闭文件
  12.  
  13. #favicon.ico为文件名
  14. #wb参数中w表示写入,b表示二进制文件,r表示读取。


  1. headers
  1. import requests
  2.  
  3. #返回200
  4. headers={
  5. 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0'
  6. }
  7. response=requests.get('https://www.zhihu.com/explore',headers=headers)
  8. print(response.status_code)
  9.  
  10. #返回400
  11. response=requests.get('https://www.zhihu.com/explore')
  12. 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)

  1. #其他
  2.  
  3. #代理设置样例,根据选择需要其中一种
  4. proxies={
  5. "http":"http://user:password@xxx.xxx.xxx.xxx:xxxx/:
  6. }
  7. proxies={
  8. "http":"socks5://xxx.xxx.xxx.xxx:xxxx",
  9. "https":"socks5://xxx.xxx.xxx.xxx:xxxx"
  10. }
  11. proxies={
  12. "http":"http://xxx.xxx.xxx.xxx:xxxx",
  13. "https":"https://xxx.xxx.xxx.xxx:xxxx"
  14. }
  15. r=requests.get('url',proxies=proxies,timeout=1)
  16. #timeout表示超时设置。单位为秒
  17. #超出时间,将会终端程序
  18. #使用try except
  19. from requests.exceptions import ReadTimeout
  20. try
  21. r=requests.get('url',proxies=proxies,timeout=1)
  22. print(r.status_code)
  23. except ReadTimeout:
  24. print('timeout')
  1. #认证设置
  2.  
  3. import requests
  4. from requests.auth import HTTPBasicAuth
  5. r=requests.get('http://xxx.xxx.xxx.xxx:xxxx')
  6. print(r.status_code)
  7.  
  8. #返回401表示需要认证
  9.  
  10. r=requests.get('http://xxx.xxx.xxx.xxx:xxxx',auth=('user','passwd')
  11. 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. 机器学习 - 算法 - PCA 主成分分析

    PCA 主成分分析 原理概述 用途 - 降维中最常用的手段 目标 - 提取最有价值的信息( 基于方差 ) 问题 - 降维后的数据的意义 ? 所需数学基础概念 向量的表示 基变换 协方差矩阵 协方差 优 ...

  2. 30 Flutter自定义Dialog

    MyDialog.dart import 'dart:async'; import 'package:flutter/material.dart'; class MyDialog extends Di ...

  3. Linux -- 管理锁争用(翻译)

    在多线程应用中,程序员会使用互斥锁(mutex)来同步线程进入可访问共享资源的代码区域的行为.受这些锁保护的代码区域被称为关键代码段(Critical Section).如果关键代码段中已存在一个线程 ...

  4. 小程序scroll-view 使用

    <scroll-view class="box" scroll-x="true" > <view </view> <view ...

  5. css3实现左右锯齿效果

    要实现的效果:css3实现左右锯齿效果 <!DOCTYPE html> <html> <head> <meta charset=" utf-8&qu ...

  6. iOS-类似微信摇一摇

    首先,一直以为摇一摇的功能实现好高大上,结果百度了.我自己也模仿写了一个demo.主要代码如下: 新建一个项目,名字为AnimationShake. 主要代码: - (void)motionBegan ...

  7. unity, 替换shader渲染(Rendering with Replaced Shaders)【转】

    实现特效,尤其是一些后处理特效,经常需要将各物体的shader替换为另一套shader进行渲染到纹理,再后再进行合成或以某种叠加方式叠加到最后的画面上去. 再复杂一点儿的,可能不同的物体所用的替换sh ...

  8. Linux "yin"才们的奇"yin"小技巧 --请用东北发音夸他们

    1. include/linux/bits.h GENMASK(h, l) /* * Create a contiguous bitmask starting at bit position @l a ...

  9. php类常量

    类常量类常量可以使用define定义,也可用const定义,但是在类的内部,只允许用const定义,类常量不能更新,也不能删除类常量通常是大写的,两个单词之间用下滑线连接,如MY_NATION类常量在 ...

  10. pandas 索引笔记

    import pandas as pd import numpy as np s = pd.Series(np.random.rand(5), index=list('abcde')) # 创建序列, ...