目录
读取URL和下载网页内容,是每一个爬虫的必经之路。那么在阅读《Python爬虫开发与项目实战》一书得知,Python实现HTTP请求有三种方式——
- urllib2/urllib
- httplib/urllib
- Requests
经书中例子对比发现,个人更偏好第三种请求方式,操作比较简单,因为懒,所以这里对前两种方式不做过多的赘述,有兴趣的小伙伴自己去百度吧,反正我的懒癌已经是晚期无解了。那么接下来——
安装Requests库
由于Requests是一个第三方库,所以在使用之前,需要先安装它,在线安装pip一下,一切都是那么的完美,当然了,不要在意我的Python版本,毕竟整个公司用到都是2.7我能怎么办呢 ——
安装成功之后,跟着书中的例子敲一遍吧
GET请求
# -*- coding:utf-8 -*-
import requests
# 以下为GET请求
url = 'https://www.csdn.net/'
requests = requests.get(url)
print requests.content # 返回字节形式
POST请求
# -*- coding:utf-8 -*-
import requests
# 以下为POST请求
url = 'https://xxxxx.com/login'
postdatas = {'key': 'value'}
requests = requests.post(url, data=postdatas)
print requests.content # 返回字节形式
然后其他的put、delete等方法,也可以照葫芦画瓢的使用
响应码code和响应头headers的处理
# -*- coding:utf-8 -*-
import requests
url = 'https://www.csdn.net/'
r = requests.get(url)
if r.status_code == requests.codes.ok:
print '=== status_code === ', r.status_code # 响应码
print '=== headers === ', r.headers # 响应头
print '=== Content-Type === ', r.headers.get('Content-Type') # 获取响应头中的Content-Type字段
else:
r.raise_for_status() # 抛出异常
打印结果如下:
请求超时设置
# -*- coding:utf-8 -*-
import requests
url = 'https://www.csdn.net/'
r = requests.get(url,timeout=20)
timeout的单位为秒