一、Requests库
Requests是用Python语言编写的,基于urllib3来改写的,采用Apache2 Licensed 来源协议的HTTP库。
它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。一句话---Python实现的简单易用的HTTP库。
安装Requests
pip3 install requests
创建请求
通过requests库发出一个请求非常简单,首先我们先导入requests库:
import requests
result = requests.get('http://www.baidu.com/')
获取到了一个Response对象result,我们可以从这个对象中获得所有我们需要的所有信息。刚刚的栗子是使用的GET请求,接下来将使用requests库进行POST请求:result = requests.post('http://www.baidu.com/',data={key:value})
响应内容
二进制响应内容
JSON格式的响应内容,如果解码失败,result.json()将会引发异常
请求将自动解码来自服务器的内容。大多数unicode字符集都是无缝解码的。
二、BeautifulSoup库
beautifulSoup “美味的汤,绿色的浓汤”
一个灵活又方便的网页解析库,处理高效,支持多种解析器。 利用它就不用编写正则表达式也能方便的实现网页信息的抓取
标签选择器
在快速使用中我们添加如下代码: print(soup.title) print(type(soup.title)) print(soup.head) print(soup.p)
通过这种soup.标签名 我们就可以获得这个标签的内容 这里有个问题需要注意,通过这种方式获取标签,如果文档中有多个这样的标签,返回的结果是第一个标签的内容,如上面我们通过soup.p获取p标签,而文档中有多个p标签,但是只返回了第一个p标签内容
获取名称
当我们通过soup.title.name的时候就可以获得该title标签的名称,即title
获取属性
print(soup.p.attrs['name']) print(soup.p['name']) 上面两种方式都可以获取p标签的name属性值
获取内容
print(soup.p.string) 结果就可以获取第一个p标签的内容: The Dormouse's story
嵌套选择
我们直接可以通过下面嵌套的方式获取
print(soup.head.title.string)
子节点和子孙节点
contents的使用
三、Lxml库
lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高
XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言,它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。(注意:36是指python版本号)
#pip安装 pip3 install lxml #wheel安装 #下载对应系统版本的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml pip3 install lxml-4.2.1-cp36-cp36m-win_amd64.whl