requests库主要方法

import requestsrequests.request(method, url, **kwargs)    """构造一个请求,支撑下面各种基础方法"""
# **kwarg包括params, data, json, headers, cookies, auth, files, timeout, proxies(设代理服务器),# allow_redirexts, stream, verify 12个访问控制参数
requests.get(url, params=None, **kwargs)           """获取html网页的主要方法,对应HTTP的GET"""requests.head(url, **kwargs)        """获取html网页头信息的方法,对应HTTP的HEAD"""requests.post(url, data=None, json=None, **kwargs)        """向html页面提交POST请求"""requests.put(url, data=None, **kwargs)          """向html页面提交PUT请求"""requests.patch(url, data=None, **kwargs)        """向html页面提交局部修改请求"""requests.delete(url, **kwargs)        """向html页面提交删除请求"""

1.requests.get(url, params=None, **kwargs)

    url:你获取页面的url链接;

    params:url中额外参数,字典或字节流格式,可选;

    **kwargs:12个控制访问的参数;

  r = requests.get(url)返回一个包含服务器资源的Response对象r,r包含了爬虫返回的全部内容。其中r有5中常用的属性

r.status_code                """返回HTTP请求的状态码, 200表示成功,404表示失败"""r.text                            """HTTP响应内容的字符串形式,url对应页面内容"""r.encoding                     """从HTTP header中猜测的相应内容编码方式"""r.apparent_encoding       """从内容中分析出的响应内容编码方式"""r.content                        """HTTP响应内容的二进制形式"""
r.raise_for_status      """判断状态码是否正确,如果不是200就raise HTTPException"""

  

2.requests库的异常类型

requests.ConnectionError        """网络连接异常,DNS查询失败,拒绝连接等"""requests.HTTPError                 """HTTP连接错误"""requests.URLRequired             """URL缺失异常"""requests.TooManyRedirects      """超过最大重定向次数,产生重定向异常"""requests.ConnectTimeout        """连接远程服务器时超时"""requests.Timeout                    """请求URL超时"""

  通过以上两点一般的爬取通用框架就可以大致勾画出来

 1 import requests
 2
 3 def getHTMLText(url):
 4     try:
 5         r = requests.get(url, timeout=30)
 6         r.raise_for_status()    # 如果状态码错误,则抛出异常
 7         r.encoding = r.apparent_encoding
 8         return r.text
 9     except:
10         return "产生异常"
11
12 if __name__ == "__main__":
13     url = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
14     print(getHTMLText(url))

3.HTTP协议

超文本传输协议(HTTP)是一种基于”请求与响应“模式的、无状态的应用层协议。HTTP协议一般采用URL作为网络定位的标识。(http://host[:port][path])

而URL就是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源。

HTTP协议对资源的操作方法(method)主要有:GET, HEAD, POST, PUT, PATCH, DELETE对应requests库的几个方法,功能也一致。

GET:请求获得URL位置的资源;

HEAD:请求获取URL位置资源的响应消息报告,即该资源的头部信息

POST:请求向URL位置的资源后附加新的数据

PUT:请求向URL位置存储一个资源,覆盖原URL位置的资源

PATCH:请求局部更新URL位置的资源,改变该资源的部分内容

DELETE:请求删除URL位置存储的资源

转载于:https://www.cnblogs.com/KrianJ/p/10586084.html

爬虫-相关库知识整理(更新)相关推荐

  1. 说话人识别相关基础知识整理(持续更新)

    说话人识别领域的研究所面临的挑战 背景噪声问题,跨信道问题,多说话人分割聚类,多模态识别,短语音问题,语音的长时变换问题,耳语音以及其他各种实际应用环境下的鲁棒性问题等. 说话人识别技术研究的核心是解 ...

  2. 计算机视觉相关库的整理

    本文章有转载自其它博文,也有自己发现的新库添加进来的,如果发现有新的库,可以推荐我加进来 转自:http://www.cnblogs.com/tornadomeet/archive/2012/05/2 ...

  3. 北京理工大学·Python网络爬虫与信息提取·知识整理

    学习目标: python爬虫部分的学习 学习内容: mooc北京理工大学·Python网络爬虫与信息提取 对Scrapy内核依然一知半解,但mooc内容已经学完整理 后续将对Scrapy继续进行学习 ...

  4. python数据分析复盘——爬虫相关库

    Requests.BeautifulSoup.re.lxml.css selector .scrapy 1.Requests 1.1 Requests的7个主要方法 其中,request()方法是其它 ...

  5. Python 爬虫相关库

    一.请求库 1.urllib3 库         提供很多Python 标准库里所没有的重要特性:线程安全,连接池,客户端SSL/TLS验证,文件分部编码上传,协助处理重复请求和HTTP 重定位,支 ...

  6. Bluetooth Controller BB Phsical Channel相关基础知识整理

    最近需要做一些BT Controller相关的新功能开发,于是将Controller的Phsical Channel的知识点重新复习一遍,为了检讨已经忘却或者现在或者将来的忘却,做个忘却的纪念. Ph ...

  7. linux 相关零碎知识整理

    1.启动bash shell 大部分linux系统启动用户命令行接口(cli)环境时使用默认的bash shell,在bash shell启动时,它将自动执行位于用户主目录下的.bashrc中的命令. ...

  8. 计算机相关零碎知识(持续更新)

    1.bat文件 windows操作系统专用,bat文件是批处理文件,在这种文件里可以编写大量的window系统下的dos命令,执行一个bat文件,相当于批量执行这些dos命令 与之相对应的是sh文件, ...

  9. Python爬虫_02_Python基础知识整理

    一.Python 1.1 注释 1.1 注释介绍 在我们工作编码的过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当的添加注释,以辅助自己 或者其他编码人员解读代码. 没注释的代码 有注释 ...

最新文章

  1. 华为软件测试工程师与普通软件工程师的区别
  2. 大型网站系统架构系列:负载均衡详解(一)
  3. python mysql in 参数_python mysql中in参数化说明
  4. yii2实现WebService 使用 SoapDiscovery
  5. c 语言dll源码查看,易语言DLL函数查看器源码
  6. 无盘服务器游戏盘大了IO多,BXP无盘详细图文系统教程4
  7. 图片去水印工具:Inpaint 7.2中文专业破解版下载及使用方法
  8. python 进程通信方式_python 进程 进程池 进程间通信实现解析
  9. AlphaFold2: Highly accurate protein structure prediction with AlphaFold笔记
  10. BZOJ2959长跑——LCT+并查集(LCT动态维护边双连通分量)
  11. Python 查看微信撤回消息
  12. 少儿编程微课程10:使用画笔绘制正六边形
  13. 天堂里有没有车来车往
  14. 每天3个面试题精研 - 前端 - 第4-6天
  15. C++中“map和set”相关内容整理分析
  16. Python 淘宝商品价格爬取(requests库+正则表达式)
  17. Androidstudio配置git及连接远程库全过程
  18. 获取拼音首字母(含生僻字)工具类
  19. 遭遇职场官斗,外派回来岗位被占!
  20. insserv: Starting xx depends on plymouth and therefore on system facility `$all'

热门文章

  1. JDBC 笔记4 PreparedStatement 与Statement 的区别
  2. 用 Flutter 写一个精美的登录页面(最新版)
  3. 软件设计师25-操作系统
  4. 中国主流的大数据分析厂商
  5. 中科大c语言试卷,中科大考研试题.doc
  6. dbf如何导入oracle_克服Oracle导数一切难题
  7. php替换局部大小写字母,php替换字符串中的一些字符(区分大小写)的函数str_replace()...
  8. python查看继承方法(一分钟读懂)
  9. cython 安装升级_Anaconda安装pytorch,torchvision和 cython
  10. debug跳出循环_Java基础-第04章:循环结构「云图智联」