python网络爬虫学习笔记
2019-05-28 15:04
78 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/actually_ture/article/details/90639677
爬取网页的通用代码框架 网络爬虫的盗亦有道 Requests爬取实例
python网络爬虫学习笔记
Requests第三方库入门
自动爬取HTML页面;自动网络请求提交
主要方法 | 说明 |
---|---|
requests.request() | 构造一个请求 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.head() | 获取HTML网页头信息的方法,对应于HTTP的HEAD |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requests.patch() | 向HTML网页提交局部修改请求的方法,对应于HTTP的PATCH |
requests.delete() | 向HTML网页提交删除请求的方法,对应于HTTP的DELETE |
requests.get()
# 构造一个向服务器请求资源的Request对象,并返回一个包含服务器资源的Response对象r r = requests.get(url) def get(url, params=None, **kwargs): """Sends a GET request. :param url: URL for the new :class:`Request` object. :param params: (optional) Dictionary or bytes to be sent in the query string :param \*\* kwargs: Optional arguments that ``request`` takes. :return: :class:`Response <Response>` object :rtype: requests.Response """ kwargs.setdefualt('allow_redirects', True) return request('get', url, params=params, **kwargs)
参数 | 说明 |
---|---|
url | 拟获取页面的url链接 |
params | url中的额外参数,字典或字节流格式,optional |
**kwargs | 12个控制访问的参数 |
Response对象
属性 | 说明 |
---|---|
r.status_code | HTTP请求的返回状态,200表示连接成功, 404表示失败 |
r.headers | 访问页面的头部信息 |
r.text | HTTP响应内容的字符串形式,即url对应的页面内容 |
r.encoding | 从HTTP header中猜测的响应内容编码方式 |
r.apparent_encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
r.content | HTTP相应内容的二进制形式 |
获取网络资源的基本流程
Created with Raphaël 2.2.0开始r.status_code = 200r.text r.encodingr.apparent_encodingr.content解析访问内容由于某些原因产生错误yesno爬取网页的通用代码框架
由于网络连接有风险,requests.get(url)不一定能成功获取网页资源,因此异常处理很重要。
异常 | 说明 |
---|---|
requests.ConnectionError | 网络连接错误异常,如DNS查询失败,拒绝连接 |
requests.HTTPError | HTTP 错误异常 |
requests.URLRequired | URL缺失异常 |
requests.TooMany Redirects | 超过最大重定向次数,产生重定向异常 |
requests.ConnectTimeout | 连接远程服务器超时异常 |
requests.Timeout | 请求URL超时,产生超时异常 |
r.raise_for_status() | 如果不是200, 产生异常requests.HTTPError |
import requests def getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "Exception occurred!" if __name__ == "__main__": url = "http://www.baidu.com" print(getHTMLText(url))
网络爬虫的盗亦有道
Requests爬取实例
相关文章推荐
- python网络爬虫学习笔记
- python 网络爬虫学习笔记(一)
- python3网络爬虫学习笔记(一)
- python网络爬虫学习笔记(1)
- python网络爬虫学习笔记
- python网络爬虫学习笔记
- python网络爬虫学习笔记(一)配置安装python环境
- Python网络爬虫学习笔记(第一周)
- Python网络爬虫学习笔记(一)
- 用python写网络爬虫学习笔记(二)
- 精通python网络爬虫学习笔记(1)
- 用python写网络爬虫学习笔记(一)
- Python学习(四)数据结构 —— set frozenset
- Python编写简易木马程序
- 构建Python包的五个简单准则简介
- python写入xml文件的方法
- python编程题:汉诺塔排序
- Ubuntu下一个python的BeautifulSoup和rsa安装方法---信息检索project2部分:微博爬行要求python包裹
- python连接postgresql数据库
- Python的数据模型