Requests库入门
Requests安装
用管理员身份打开命令提示符:
pip install requests
测试:打开IDLE:
>>> import requests >>> r = requests.get("http://www.baidu.com") >>> r.status_code 200 >>> r.encoding = 'utf-8' #修改默认编码 >>> r.text #打印网页内容
HTTP协议
超文本传输协议,Hypertext Transfer Protocol.
HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。
HTTP协议采用URL作为定位网络资源的标识。
URL格式
http://host[:port][path]
host:合法的Internet主机域名或IP地址
port:端口号,缺省端口为80
path:请求资源的路径
操作
Requests主要方法
主要方法为request方法,其他方法都是在此方法基础上封装而来以便使用。
request()方法
requests.request(method,url,**kwargs) #method:请求方式,对应get/put/post等7种 #url:拟获取页面的url链接 #**kwargs:控制访问的参数,共13个
**kwargs:控制访问的参数,均为可选项
get()方法
''' 这是小编准备的python爬虫学习资料,加群:821460695 即可免费获取! ''' r = requests.get(url) 完整方法: requests.get(url,params=None,**kwargs) url:拟获取页面的url链接 params:url中的额外参数,字典或字节流格式,可选 **kwargs:12个控制访问的参数,可选
get()方法:
构造一个向服务器请求资源的Request对象
返回一个包含服务器资源的Response对象
Response对象
head()方法
r = requests.head('http://httpbin.org/get') r.headers
获取网络资源的概要信息
post()方法
向服务器提交新增数据
payload = {'key1':'value1','key2':'value2'} #新建一个字典 #向URL POST一个字典,自动编码为form(表单) r = requests.post('http://httpbin.org/post',data = payload) #向URL POST一个字符串,自动编码为data r = requests.post('http://httpbin.org/post',data = 'ABC') print(r.text)
put()方法
同post,只不过会把原来的内容覆盖掉。
patch()方法
delete()方法
Requests库的异常
爬取网页的通用代码框架
import requests ''' 这是小编准备的python爬虫学习资料,加群:821460695 即可免费获取! ''' def getHTMLText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() #如果不是200,引发HTTPError异常 r.recoding = r.apparent_encoding return r.text except: return "产生异常" if __name__ == "__main__": url = "http://www.baidu.com" print(getHTMLText(url))
实例
向百度提交关键词
import requests ''' 这是小编准备的python爬虫学习资料,加群:821460695 即可免费获取! ''' # 向搜索引擎进行关键词提交 url = "http://www.baidu.com" try: kv = {'wd':'python'} r = requests.get(url,params =kv) print(r.request.url) r.raise_for_status() print(len(r.text)) except: print("产生异常")
获取网络图片及存储
import requests import os ''' 这是小编准备的python爬虫学习资料,加群:821460695 即可免费获取! ''' url = "http://image.ngchina.com.cn/2019/0423/20190423024928618.jpg" root = "D://2345//Temp//" path = root + url.split('/')[-1] try: if not os.path.exists(root): os.mkdir(root) if not os.path.exists(path): r = requests.get(url) with open(path,'wb') as f: f.write(r.content) #r.content返回二进制内容 f.close() print("文件保存成功") else: print("文件已存在") except: print("爬取失败")
本文暂时没有评论,来添加一个吧(●'◡'●)