- 准备工作
安装好pycharm,requests库 - requests 爬虫程序(模板)
import requests
def getHTMTText(url):
try:
r=requests.get(url,timeout=30)
r.raise_for_status() #如果状态不是200,引发HTTPError异常
r.encoding=r.raise_for_status()
return r.text
except:
return "产生异常"
if __name__=="__main__":
url="http://www.baidu.com"
print(getHTMTText(url)) #打印url页面内容
在开始写爬虫时,一定要注意响应状态,如果返回404,我们能及时作出修改。
-
Response 对象的属性
r.status_code:HTTP请求的返回状态,200表示连接成功,404表示失败。
r.text:HTTP响应内容的字符串形式,即URL对应的页面内容。
r.encoding:从HTTP header 中猜测的响应内容编码方式。
r.apparent_encoding:从内容中分析出响应内容编码方式(备选编码方式)
r.content:HTTP响应内容的二进制形式。 -
理解requests库的异常
requests.ConnectionError:网络连接错误异常,如DNS查询失败、拒绝连接等。
requests.HTTPError:HTTP错误异常。
requests.URLRequired:URL缺失异常。
requests.TooManyRedirects:超过最大重定向次数,产生重定向异常。
requests.ConnectTimeout连接远程服务器超时异常。:
requests.Timeout:请求URL超时,产生超时异常。 -
Requests 库的7个主要方法
requests.request():构造一个请求,支撑以下各方法的基础方法。
requests.get():获取HTML网页的主要方法,对应于HTTP的GET。
requests.head():获取HTML王玉婷头信息的方法,对应于HTTP的HEAD。
request.post():向HTML网页提交POST请求的方法,对应于HTTP的POST。
requests.put():向HTML网页提交PUT请求的方法,对应于HTTP的PUT。
requests.patch():向HTML网页提交局部修改请求,对应于HTTP的PATCH。
requests.delete():向HTML页面提交删除请求,对应于HTTP的DELETE。 -
HTTP协议
HTTP,超文本传输协议。
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议HTTP协议采用URL作为定位网络资源的标识,URL的格式如下:
http://host[:port][path]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
- HTTP协议对资源的操作
GET:请求获取URL位置的资源。
HEAD:请求获取URL位置资源的响应消息报告,即获得资源的头部信息。
POST:请求向URL位置的资源后附加新的数据。
PUT:请求向URL位置存储一个资源,覆盖原URL位置的资源。
PATCH:请求局部更新URL位置的资源,即改变该处资源的部分内容。
DELETE:请求删除URL位置存储的资源。 - requests.request(method,url,**kwatgs)
method:请求方式,对应get/put/post等7种
url:拟获取页面的url链接
**kwargs:控制访问的参数,共13个
method:请求方式
r=requests.request('GET',url,**kwargs)
r=requests.request('HEAD',url,**kwargs)
r=requests.request('POST',url,**kwargs)
r=requests.request('PUR',url,**kwargs)
r=requests.request('PATCH',url,**kwargs)
r=requests.request('delete',url,**kwargs)
r=requests.request('OPTIONS',url,**kwargs)
**kwargs:控制访问的参数,均为可选项
params:字典或字节序列,作为参数增加到url中。
data:字典、字节序列或文件对象,作为Request的内容。
json:JSON歌手的数据,作为Request的内容。
headers:字典,HTTP定制头、
cookies:字典或CookieJar,Request中的cookie。
auth:元组,支持HTTP认证功能。
files:字典类型,传输文件。
timeout:设定超时时间,秒为单位。
proxies:字典类型,设定访问代理服务器,可以增加登录认证。
allow_redirects:True/False,默认为True,重定向开关。
stream:True/False,默认为True,获取内容立即下载开关。
verify:True/False,默认True,认证SSL证书开关。
cert:本地SSL证书路径。