以前在跟你们讲经过字典列表批量获取数据的时候用过这个模块html
安装过程就再也不讲解了python
requests模块是python的http库,能够完成绝大部分与http应用相关的工做,因此咱们能够用它来进行数据抓取工做json
requests模块有两个经常使用的方法,get 和 post 咱们也主要只是围绕这两个方法来说解requests模块浏览器
注意:requests不能模拟浏览器的所有行为服务器
在requests模块中,咱们能够经过get和post两种形式去向服务器发出http请求post
例如,仍是用我本身的网站作例子,来简单演示这个方法网站
# coding=utf-8 __Author__ = "susmote" import requests url = "http://www.susmote.com" resp = requests.get(url) with open("home.html", 'w', encoding='utf8') as f: f.write(resp.text)
在命令行运行编码
咱们获得了一个文件,也就是个人网站的首页的源码url
咱们经过浏览器打开,以下命令行
resp还有一些其余的属性,你可经过help(resp)查看response的各类属性和方法
返回以下图
咱们试一下里面的一些属性
在这里要特别注意一下编码的问题
经过resp.encoding 能够返回默认编码,resp.text就是按照这个进行编码的
但若是将编码改成gb2312,就会出现乱码
response具备content属性,会以二进制的方式返回响应的内容,返回内容以下图所示
response还有json方法,能够将返回的文本内容以json的方式进行解析
http://jsonip.com 这个网站在接受get请求后,做为响应会向请求方法返回一个json格式的文本,里面会有发起请求的ip地址等信息
例以下面这个例子
# coding=utf-8 __Author__ = "susmote" import requests url = "http://jsonip.com/" resp_ip = requests.get(url) print("字符串格式") print(resp_ip.text) print(type(resp_ip)) print("字典格式") print(resp_ip.json()) print(type(resp_ip)) print(resp_ip.text)
下面咱们在命令行运行这个文件
在这个例子中,resp_ip的text包含了返回的文本信息,json格式的信息也是以文本的方式返回的,这个能够从返回结果中看出
resp_ip.json()是使用json方法对返回的内容进行解析,将json解析的结果以字典的形式返回,但要注意的是json方法只是解析,并不会对resp.text形成影响,也就是以前的resp.text的内容是不变的
关与get方法大概就是这些,还有一些后面再讲
官方博客 www.susmote.com