- 运行环境: python3.7 win7x64
- 使用工具: VS Code
- python 第三方库: requests (自行安装 >>> cmd --->pip install requests, 具体不做介绍)
- requests 库简介
函数 | 说明 |
get(url [, timeout=n]) | 对应HTTP的GET方式,设定请求超时时间为n秒 |
post(url, data={‘key‘:‘value‘}) | 对应HTTP的POST方式,字典用于传输客户数据 |
delete(url) | 对应HTTP的DELETE方式 |
head(url) | 对应HTTP的HEAD方式 |
options(url) | 对应HTTP的OPTIONS方式 |
put(url, data={‘key‘:‘value‘}) | 对应HTTP的PUT方式,字典用于传输客户数据 |
其中,最常用的是get方法,它能够获得url的请求,并返回一个response对象作为响应。有了响应对象,就能为所欲为了,你觉得呢 ^x^
属性 | 说明 |
status_code | HTTP请求的返回状态(???咨询一下) |
encoding | HTTP响应内容的编码方式 |
text | HTTP响应内容的字符串形式 |
content | HTTP响应内容的二进制形式 |
方法 | 说明 |
json() | 若http响应内容中包含json格式数据, 则解析json数据 |
raise_for_status() | 若http返回的状态码不是200, 则产生异常 |
(一)先试一试爬一次的效果
# -*- coding: utf-8 -*- """ Created on Mon May 20 10:13:57 2019 @author: lzz """ import requests def gethtmlText(url): try: r=requests.get(url,timeout=30) #打开文件 r.raise_for_status() #返回状态 r.encoding=‘utf-8‘ #把文件编码默认为utf-8 return r.text #返回文本 #return r.content except: return "" url="http://www.baidu.cn" for i in range(1): print(getHTMLText(url)) print(len(getHTMLText(url)))
其中返回的text的属性长度为
返回的content属性长度为
(二)爬20次的效果
# -*- coding: utf-8 -*- """ Created on Mon May 20 10:13:57 2019 @author: lzz """ import requests def getHTMLText(url): try: r=requests.get(url,timeout=30) #打开文件 r.raise_for_status() #返回状态 r.encoding=‘utf-8‘ #把文件编码默认为utf-8 #return r.text #返回文本 return r.content except: return "" url="http://www.baidu.cn" for i in range(20): print("Test %d:" % (i+1), end=" ") response = requests.get(url, timeout=30) # 判断连接状态 if response.status_code == 200: print("Conncect successful!") else: print("Conncect UNsuccessful!")