webbrowser
-
webbrowser.open(url): webbrowser 模块的 open()函数可以启动一个新浏览器,打开指定的 URL
requests
-
请求方式
-
requests.get(url): requests.get()函数接受一个要下载的 URL 字符串。 它返回一个 Response 对象,其中包含了 Web 服务器对 你的请求做出的响应。
-
传递参数:以字典形式
-
headers
-
proxies
-
verify(Ture or Flase):证书验证
-
allow_redirects 参数禁用重定向处理
-
timeout:经过以 timeout 参数设定的秒数时间之后停止等待响应
-
-
-
requests.post(url)
-
data参数(dict or tuple): 你想要发送一些编码为表单形式
-
multipart-encoded文件参数:
-
-
requests.put(url)
-
requests.delete(url)
-
requests.head(url)
-
requests.options(url)
-
requests.Session():会话维持
-
-
Response
-
属性
-
status_code: 通过检查 Response 对象的 status_code 属性,你可以了解对这个网页的 请求是否成功。如果该值等于 requests.codes.ok,那么一切都好
-
text: 如果请求成功,下载的页面就作为一个字符串,保存在 Response 对象的 text 变量中
-
url:请求url
-
headers:头信息
-
cookies:cookie信息
-
.RequestsCookieJar():返回一个cookies
-
-
content:字节流形式
-
encoding:编码方式
-
history: 可以使用响应对象的 history方法来追踪重定向,Response.history 是一个 Response 对象的列表
-
-
json():解析json
-
raise_for_status(): 可以检查它是否等于 requests.codes.ok
-
iter_content(size): iter_content()方法在循环的每次迭代中,返回一段内容。每一段都是 bytes 数据 类型,你需要指定一段包含多少字节。
-
-
下载并保存到文件的完整过程如下: 1.调用 requests.get()下载该文件。 2.用'wb'调用 open(),以写二进制的方式打开一个新文件。 3.利用 Respose 对象的 iter_content()方法做循环。 4.在每次迭代中调用 write(),将内容写入该文件。 5.调用 close()关闭该文件。
-
异常处理
-
遇到网络问题(如:DNS 查询失败、拒绝连接等)时,Requests 会抛出一个ConnectionError 异常
-
如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出一个 HTTPError 异常。
-
若请求超时,则抛出一个 Timeout 异常。
-
若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects 异常。
-
所有Requests显式抛出的异常都继承自requests.exceptions.RequestException 。
-
-
高级内容
-
会话对象
-
请求与响应对象
-
准备的请求 (Prepared Request)
-
SSL 证书验证
-
客户端证书
-
CA 证书
-
响应体内容工作流
-
保持活动状态(持久连接)
-
流式上传
-
块编码请求
-
POST 多个分块编码的文件
-
事件挂钩
-
自定义身份验证
-
流式请求
-
代理
-
合规性
-
HTTP动词
-
定制动词
-
响应头链接字段
-
传输适配器
-
阻塞和非阻塞
-
Header 排序
-
超时(timeout)
-
-
身份验证
-
基本身份认证
-
摘要式身份认证
-
OAuth 1 认证
-
OAuth 2 与 OpenID 连接认证
-
其他身份认证形式
-
新的身份认证形式
-
BeautifulSoup: Beautiful Soup 是一个模块,用于从 HTML 页面中提取信息。Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码
-
解析器:Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml 解析器更加强大,速度更快,推荐安装。
<thead”>
解析器 |
使用方法 |
优势 |
劣势 |
Python标准库 |
BeautifulSoup(markup, “html.parser”) |
Python的内置标准库 执行速度适中 文档容错能力强 |
Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差 |
lxml HTML 解析器 |
BeautifulSoup(markup, “lxml”) |
速度快 文档容错能力强 |
需要安装C语言库 |
lxml XML 解析器 |
BeautifulSoup(markup, [“lxml”, “xml”])BeautifulSoup(markup, “xml”) |
速度快 唯一支持XML的解析器 |
需要安装C语言库 |
html5lib |
BeautifulSoup(markup, “html5lib”) |
最好的容错性 以浏览器的方式解析文档 生成HTML5格式的文档 |
速度慢 不依赖外部扩展 |
-
创建 Beautiful Soup 对象
soup = BeautifulSoup(html) |
另外,我们还可以用本地 HTML 文件来创建对象,例如
soup = BeautifulSoup(open('index.html')) |
-
soup.prettify():格式化打印出它的内容
-
四大对象种类
-
Tag:就是 HTML 中的一个个标签
-
[]:可以直接用[属性]访问相关属性内容
-
(.)操作符:我们可以利用 soup加标签名轻松地获取这些标签的内容,不过有一点是,它查找的是在所有内容中的第一个符合要求的标签
-
属性
-
name:soup 对象本身比较特殊,它的 name 即为 [document],对于其他内部标签,输出的值便为标签本身的名称。
-
attrs:返回标签的所有属性,得到的类型是一个字典。
-
-
get(属性):返回标签的该属性
-
del:对这个属性进行删除
-
-
del soup.p['class'] print soup.p #<p name="dromouse"><b>The Dormouse's story</b></p> |
-
修改