欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python爬虫入门(一)Requests库和Robots协议

程序员文章站 2024-01-05 20:47:58
...

趁着最近比较闲(假),来随便搞点爬虫入门。
Requests库是python很好的第三方爬虫库
Python爬虫入门(一)Requests库和Robots协议

import requests
r = requests.get("http://www.baidu.com")
r.status_code #返回状态码
r.encoding    #猜测一波编码格式
r.apparent_encoding #显示内容的编码格式
r.encoding = "utf-8" #用内容编码格式替换
r.text       #显示内容

Requests库提供六种请求方式

方法 用途
request() 构造请求,是下面六个的基础方法
get 获取H5页面主要方法,对应HTTP的GET
head 获取H5网页头部信息,对应HTTP的HEAD
post 向H5网页提交POST请求, 对应HTTP的POST
put 向H5网页提交PUT请求,对应HTTP的PUT
patch 局部更新URL页面
delete 删除URL位置资源

Requests库的异常处理

异常 说明
requests.ConnectionError 网络连接错误:DNS查询失败、拒绝连接
requests.URLRequired URL缺失异常
requests.TooManyRedirects 超过最大重定向次数
requests.HTTPError HTTP错误异常异常
requests.ConnectTimeout 连接远程服务器超时异常
requests.Tmeout 请求URL超时异常

Response对象提供了r.raise_for_status()方法
如果返回值不是200,产生异常requests.HTTPError
python异常处理的写法和java类似,也是try…catch形式
这里给出一个简单的异常写法:

import requests
def getHTMLText(url):
    try:
        r= requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
     except:
        return "抛出异常"
if __name__=="__main__":
     url = "http://www.baidu.com"
     print(getHTMLText(url))

Response对象的主要属性

属性 说明
r.status_code HTTP请求的返回状态,200成功,404失败
r.text HTTP响应内容的字符串形式,url对应的页面内容
r.encoding 从HTTP header 种猜测的响应内容的编码方式
r.apparent_encoding 从内容种分析出响应内容编码方式
r.content HTTP响应内容的二进制形式

爬虫的限制:
来源审查: 判断User-Agent进行限制
检查来访的User-Agent域,只响应浏览器或友好爬虫的访问

相关标签: 爬虫