Python爬虫入门(一)Requests库和Robots协议
程序员文章站
2024-01-05 20:47:58
...
趁着最近比较闲(假),来随便搞点爬虫入门。
Requests库是python很好的第三方爬虫库
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域,只响应浏览器或友好爬虫的访问
上一篇: 格言
推荐阅读
-
Python爬虫入门(一)Requests库和Robots协议
-
python爬虫------requests库入门
-
python爬虫:Requests库(一)
-
python网络爬虫(一)requests库介绍
-
Python爬虫之Requests 库的介绍和操作实例
-
python爬虫:使用xpath和find两种方式分别实现使用requests_html库爬取网页中的内容
-
【Tkinter】Python标准库中的GUI框架入门之一——window和widget
-
Python爬虫:HTTP协议、Requests库
-
Python爬虫:HTTP协议、Requests库
-
python爬虫入门(2)--HTTP库requests