下面先来介绍两个库的基本使用
1、Requests库
方法 | 说明 |
requests.request() | 构造一个请求,支撑一下各方法的基础方法 |
requests.get() | 获取HTML网页的主要方法,对应于HTTP的GET |
requests.head() | 获取HTML网页头信息的方法,对应于HTTP的HEAD |
requests.post() | 向HTML网页提交POST请求的方法,对应于HTTP的POST |
requests.put() | 向HTML网页提交PUT请求的方法,对应于HTTP的PUT |
requests.patch() | 向HTML网页提交局部修改请求,对应于HTTP的PATCH |
requests.delete() | 向HTML页面提交删除请求,对应于HTTP的DELETE |
其对象属性 | 说明 |
r.states_code | 获取返回的状态码 |
r.text / r.read() | HTTP响应内容文本形式返回 |
r.content | HTTP响应内容的二进制形式 |
r.json() | HTTP响应内容的json形式 |
r.raw | HTTP响应内容的原始形式 |
r.encoding | 返回请求的url |
r.encoding | 从HTTP header中猜测的响应内容编码方式 |
r.apparent_encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
r.apparent_encoding | 从内容中分析出的响应内容编码方式(备选编码方式) |
下面我们通过一个例子来介绍其中部分函数的功能
用get()函数访问一个网站20次,打印返回状态,text()内容,计算text()属性和content()属性所返回的网页内容长度。
下面来看看例子
1 import requests 2 r=requests.get("https://cn.bing.com/?FORM=Z9FD1") #得到网页内容 3 r.encoding="UTF-8" #把展示的内容为UTF-8 4 for i in range(20): 5 print(r.status_code) 6 print(r.text) 7 print(len(r.content)) 8 print(len(r.text))
再来看看效果
上面的text内容由于太长只显示了这样。
2、BeautifulSoup4库
Beautiful Soup在解析时实际上是依赖解析器的,它除了支持python标准库中的HTML解析器外还支持第三方解析器如lxml
Beautiful Soup支持的解析器,以及它们的优缺点:
解析器 | 使用方法 | 优势 | 劣势 |
---|---|---|---|
Python标准库 | BeautifulSoup(markup,"html.parser") |
|
|
lxml HTML 解析器 | BeautifulSoup(markup,"lxml") |
|
|
lxml XML 解析器 |
BeautifulSoup(markup,["lxml", "xml"]) BeautifulSoup(markup,"xml") |
|
|
html5lib | BeautifulSoup(markup,"html5lib") |
|
|
下面再来看一个例子
1 import re 2 import requests 3 from bs4 import BeautifulSoup 4 a='<!DOCTYPE html> 5 <html> 6 <head> 7 <meta charset="utf-8"> 8 <title>菜鸟教程(runoob.com)</title> 9 </head> 10 <body> 11 <h1>我的第一个标题</h1> 12 <p id="first">我的第一个段落。</p> 13 </body> 14 <table border="r"> 15 <tr> 16 <td>row1,cell 1</td> 17 <td>row2,cell 2</td> 18 </tr> 19 </table> 20 </html>' 21 m=re.findall('[u4e00-u9fa5]+',a) #提取中文字符 22 s=BeautifulSoup(a) 23 print('autor:Yong No:10') 24 print(s.head) 25 print(s.body) 26 print(s.p) 27 print(m)
再来看看效果:
以上就是这两个库的一些介绍啦。