python requests模块解析html_用python3教你任意Html主内容提取

0x1 工具准备

工欲善其事必先利其器,爬取语料的根基便是基于python。

我们基于python3进行开发,主要使用以下几个模块:requests、lxml、json。

简单介绍一个各模块的功能

01|requests

requests是一个Python第三方库,处理URL资源特别方便。它的官方文档上写着大大口号:HTTP for Humans(为人类使用HTTP而生)。相比python自带的urllib使用体验,笔者认为requests的使用体验比urllib高了一个数量级。

我们简单的比较一下:

urllib:

1import urllib2

2import urllib

3

4URL_GET = "https://api.douban.com/v2/event/list"

5#构建请求参数

6params = urllib.urlencode({'loc':'108288','day_type':'weekend','type':'exhibition'})

7

8#发送请求

9response = urllib2.urlopen('?'.join([URL_GET,'%s'])%params)

10#Response Headers

11print(response.info())

12#Response Code

13print(response.getcode())

14#Response Body

15print(response.read())

复制代码

requests:

1import requests

2

3URL_GET = "https://api.douban.com/v2/event/list"

4#构建请求参数

5params = {'loc':'108288','day_type':'weekend','type':'exhibition'}

6

7#发送请求

8response = requests.get(URL_GET,params=params)

9#Response Headers

10print(response.headers)

11#Response Code

12print(response.status_code)

13#Response Body

14print(response.text)复制代码

我们可以发现,这两种库还是有一些区别的:

1. 参数的构建:urllib需要对参数进行urlencode编码处理,比较麻烦;requests无需额外编码处理,十分简洁。

2. 请求发送:urllib需要额外对url参数进行构造,变为符合要求的形式;requests则简明很多,直接get对应链接与参数。

3. 连接方式:看一下返回数据的头信息的“connection”,使用urllib库时,"connection":"close",说明每次请求结束关掉socket通道,而使用requests库使用了urllib3,多次请求重复使用一个socket,"connection":"keep-alive",说明多次请求使用一个连接,消耗更少的资源

4. 编码方式:requ

你可能感兴趣的:(python)