数据挖掘_requests模块的get方法 人工智能 第1张

关于requests模块

之前在跟大家讲通过字典列表批量获取数据的时候用过这个模块

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

安装过程就不再讲解了

requests模块是python的http库,可以完成绝大部分与http应用相关的工作,所以我们可以用它来进行数据抓取工作

requests模块有两个常用的方法,get 和 post 我们也主要只是围绕这两个方法来讲解requests模块

 

注意:requests不能模拟浏览器的全部行为

 

get方法

在requests模块中,我们可以通过get和post两种形式去向服务器发出http请求

例如,还是用我自己的网站做例子,来简单演示这个方法

 

# 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) 

  

在命令行运行

数据挖掘_requests模块的get方法 人工智能 第2张

 

我们得到了一个文件,也就是我的网站的首页的源码

我们通过浏览器打开,如下

数据挖掘_requests模块的get方法 人工智能 第3张

 

resp还有一些其他的属性,你可通过help(resp)查看response的各种属性和方法

返回如下图

数据挖掘_requests模块的get方法 人工智能 第4张

 

我们试一下里面的一些属性

数据挖掘_requests模块的get方法 人工智能 第5张

 

 

编码问题

在这里要特别注意一下编码的问题

通过resp.encoding 可以返回默认编码,resp.text就是按照这个进行编码的

数据挖掘_requests模块的get方法 人工智能 第6张

 

但如果将编码改为gb2312,就会出现乱码

数据挖掘_requests模块的get方法 人工智能 第7张

 

 

response具有content属性,会以二进制的方式返回响应的内容,返回内容如下图所示

数据挖掘_requests模块的get方法 人工智能 第8张

 

 

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) 

  

下面我们在命令行运行这个文件

数据挖掘_requests模块的get方法 人工智能 第9张

 

在这个例子中,resp_ip的text包含了返回的文本信息,json格式的信息也是以文本的方式返回的,这个可以从返回结果中看出

resp_ip.json()是使用json方法对返回的内容进行解析,将json解析的结果以字典的形式返回,但要注意的是json方法只是解析,并不会对resp.text造成影响,也就是之前的resp.text的内容是不变的

 

关与get方法大概就是这些,还有一些后面再讲

 

官方博客 www.susmote.com

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄