requests库介绍
首先爬虫需要一个强大的第三方库,requests库,方便爬取信息。
需要了解的一点是,requests适用于爬取网页,规模和数据量都较小的情况下;如果要爬取大规模的数据(如很多网站的所有内容),scrapy库是更好的选择。
requests库包含方法
requests库包含以下主要使用的方法:
import requests
r1 = requests.get() ##获取HTML网页信息
r2 = requests.head() ##获取网页头信息
r3 = requests.post() ##向网页提交post请求
r4 = requests.put() ##提交put请求
r5 = requests.patch() ##提交修改请求
r6 = requests.delete() ##提交删除请求
requests库对象
requests库包含两个重要对象: response和request
request用于请求访问
response包含爬虫的返还内容
response有以下常用属性
r.status_code ##http请求返回状态,200表示成功
r.text ##网站的页面内容
r.encoding ##编码方式,如utf-8
r.content ##内容的二进制形式
我们举个例子,使用requests库爬去百度主页
import requests
r = requests.get("http://www.baidu.com")
print(r.status_code) ##打印状态码,200表示成功
print(r.text) ##打印爬去内容
可以看到,主页内容已经被打印出来
通用网页爬去框架
我们可以使用框架来快速获取网页内容:
def getHTMLText(url):
try:
r = requests.get(url, timeout =30)
r.raise_for_status() ##判断返回response,若不是200,产生HTTPError异常
r.encoding = r.apparent_encoding ##让编码方式为备用编码方式
return r.text
except:
return "get html error"
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))