Python爬虫——requests库入门(上)

requests库入门(上)

零 前言

本系列是pytho爬虫的学习笔记,根据北京理工大学 Python网络爬虫与信息提取mooc整理。本文主要阐述了requests库的基本知识以及爬取页面的通用框架。

壹 requests库的安装

pip是个好东西

1
pip install requests

贰 requests库中的方法

0. 七种方法:

  1. requests.request()
  2. requests.get()
  3. requests.head()
  4. requests.post()
  5. requests.put()
  6. requests.patch()
  7. requests.delete()

所有方法本质上都是Requests方法

1. get()方法

1
2
3
r=requests.get(url,params=None,**kwargs)
#获得网页
#(第一个参数必选,第二个第三个可不选)

叁 requests库中两个重要对象

0.response对象及request对象

1
r=requests.get()

中,等号前的部分,称为response对象(其中包含服务器返回的所有信息,也包含request请求的所有信息);等号后的部分称为request对象。

1. Response对象的属性

属性 说明
r.status_code HTTP请求返回的状态,200成功,404失败
r.text HTTP响应内容的字符串形式,即url的页面内容
r.encoding 从HTTP header中猜测的响应内容的编码方式
r.apparent_encoding 从内容分析出的响应内容编码方式(备选编码方式)
r.content HTTP响应内容的二进制形式

肆 requests库的异常

异常 说明
requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
requests.HTTPError HTTP错误异常
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
requests.ConnectionTimeout 连接远程服务器超时异常
requests.Timeout 请求URL超时,产生超时异常
r.raise_for_statues() 如果不是200,产生异常 requests.HTTPError

伍 爬取页面通用框架

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import requests

def getHTMLText(url)
try:
r=requests.get(url)
r.raise_for_statues() #如果状态码不是200,产生HTTPError异常
r.encoding=r.apparent_encoding #替换编码方式
return r.text
expect:
return "Error"

if __name__ == "__main__":
url="http://www.baidu.com"
print(getHTMLText(url))
坚持原创技术分享,您的支持将鼓励我继续创作!