Python 爬虫学习笔记 – 第一周/单元1/Requests库入门

English Version: https://today2tmr.com/en/2017/07/15/python-spider-study-note-week-oneunit-oneintroduction-to-requests-library/

www.icourse163.org/course/BIT-1001870001

http://www.python-requests.org

安装: pip3 install Requests

简单应用:

  • 状态码200意味着获取成功页面内容。
  • 七个主要方法:
    • requests.request() 创建一个请求,其余方法的基本方法。
    • requests.get() 对应HTTP中的GET。
    • requests.head() 对应HTTP中的HEAD。
    • requests.post() 对应HTTP中的POST。
    • requests.put() 对应HTTP中的PUT。
    • requests.patch() 修改部分内容,对应HTTP中的PATCH。
    • requests.delete() 对应HTTP中的DELETE。

requests.get(url)

  • 通过url和get创建一个Request对象请求获得资源。
  • 返回一个包含内容的Response对象。

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

  • url: url链接
  • params: 额外参数,字典或字节流格式
  • **kwargs: 12个控制请求参数
  • 基于 requests.request()

Response对象

属性:

  • r.status_code: 202-成功;404-失败.
  • r.text: url对应网站的内容
  • r.encoding: 通过HTTP的HEAD信息给出的编码方式
  • r.apparent_encoding: 通过内容推断出的编码方式
  • r.content: 网页的二进制内容

r.status_code

  • 200: r.text r.encoding r.apparent_encoding r.content
  • 404: exception

两种编码方式的区别

 

  • r.encoding: 如果HTTP的header信息中没有charset,则默认为 ISO-8859-1。
  • r.apparent_encoding: 通过分析内容得出的编码方式。

Requests库的六个异常

  • requests.ConnectionError
  • requests.HTTPError
  • requests.URLRequired
  • requests.TooManyRedirects
  • requests.ConnectTimeout
  • requests.Timeout

r.raise_for_status()

判断response的状态,200或是HTTPError。

HTTP, 超文本传输协议

  • 基于请求和响应模式。
  • 两个请求之间没有关系。
  • 工作在TCP之上。
  • 用URL作为标识。

URL http://host[:port][path]

  • host: 网站主机域名或IP地址。
  • port: 端口号,默认为80。
  • path: 主机上的资源路径。
  • URL是Internet中的资源路径,每个路径对应着一个数据。

对资源的操作

  • GET 获取资源
  • HEAD 获取头部信息
  • POST 在特定路径增加资源
  • PUT 用新数据覆盖资源
  • PATCH 更新局部内容
  • DELETE 删除路径中的资源

PATCH 和 PUT的区别:

  • 有时 PATCH 比 PUT 节省更多宽带。

requests.request(method, url, **kwargs)

  • method: get/put/post…七个方法.
    • GET
    • POST
    • HEAD
    • PUT
    • PATCH
    • delete
    • OPTIONS
  • url: 网站链接
  • kwargs: 控制访问的参数
    • params: 增加到url的字典或序列
    • data: 字典或字节序或文件对象,作为Request的内容
    • json: JSON 格式
    • headers: 字典
    • cookies
    • auth
    • files: 传输文本
    • timeout, 单位为秒
    • proxies: 字典,设置代理以隐藏爬虫原始IP
    • allow_redirects: 开关
    • stream: 开关
    • verify: 开关
    • cert

 

2 Replies to “Python 爬虫学习笔记 – 第一周/单元1/Requests库入门”

Leave a Reply

Your email address will not be published.