Python requests库的使用

来自CloudWiki
跳转至: 导航搜索

requests库概述

中文版概述: http://docs.python-requests.org/zh_CN/latest/

英文版概述: http://docs.python-requests.org/en/master/

安装resuests库

  • 执行命令:
pip3 install requests

requests库的用法

获取网页

通过get方法返回网页,返回的是一个对象;网页内容作为一个对象更好操作。

>>> import requests
>>> r = requests.get("http://www.baidu.com")#打开一个网页
>>> type(r)
<class 'requests.models.Response'>

常用属性

Response对象常用的属性有:

  • status_code:返回请求HTTP后的状态
  • text:请求的页面内容
  • encoding:返回页面内容的编码方式
  • content:页面内容的二进制形式
  • 常用用法:
>>> import requests
>>> r = requests.get("http://www.baidu.com")#打开一个网页
>>> print(r.status_code) #返回状态
200
>>> print(r.text) #观察返回的内容
'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>ç\x99¾åº¦ä¸\x80ä¸\x8bï¼\x8cä½\xa0å°±ç\x9f¥é\x81\x93</title></head> ...
>>>r.encoding  #查看编码方式,因为是这种,所以乱码
'ISO-8859-1'
>>> r.encoding = 'utf-8'
>>> print(r.text)
'<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head>

异常处理

初始版代码:将网页直接打印

import requests
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status() #如果状态不是200,引发异常
        r.encoding = 'utf-8' #无论原来用什么编码,都改成utf-8
        return r.text
    except:
        return ""
while(True):
    url = input("请输入带http头的网址:")
    if url =='quit':
        break;
    print(getHTMLText(url))

改进版代码:将网页保存为文件


返回 Python网络爬虫和自动化