----用教授的方法学习。
目录
15.1 屏幕抓取
15.1.1 Tidy 和 XHTML 解析
15.1.2 Beautiful Soup
15.2 使用 CGI 创建动态网页
15.2.1 第一步:准备 Web 服务器
15.2.2 第二步:添加#!行
15.2.3 第三步:设置文件权限
15.2.4 简单的 CGI 脚本
15.2.5 使用 cgitb 进行调试
15.2.6 使用模块 cgi
15.3 使用 Web 框架
三个重要的主题:屏幕抓取、CGI和mod_python。
15.1 屏幕抓取
简单的屏幕抓取程序
from urllib.request import urlopen
import re
p = re.compile('<a href="(/jobs/\\d+)/">(.*?)</a>')
text = urlopen('http://python.org/jobs').read().decode()
for url, name in p.findall(text): print('{} ({})'.format(name, url))
15.1.1 Tidy 和 XHTML 解析
1. Tidy是什么
Tidy是用于对格式不正确且不严谨的HTML进行修复的工具。
2. 获取Tidy
有多个用于Python的Tidy库包装器,至于哪个最新并非固定不变的。可像下面这样使用pip来找出可供使用的包装器:
$ pip search tidy |
一个不错的选择是PyTidyLib,可像下面这样安装它:
$ pip install pytidylib |
也可下载:https://download.csdn.net/download/weixin_38135241/89429925
https://download.csdn.net/download/weixin_38135241/89429925
https://download.csdn.net/download/weixin_38135241/89429930
3. 为何使用XHTML
XHTML和旧式HTML的主要区别在于,XHTML非常严格,要求显式地结束所有的元素(至少就我们当前的目标而言如此)。
4. 使用HTMLParser
HTMLParser中的回调方法
回调方法 | 何时被调用 |
handle_starttag(tag, attrs) | 遇到开始标签时调用。attrs是一个由形如(name, value)的元组组成的序列 |
handle_startendtag(tag, attrs) | 遇到空标签时调用。默认分别处理开始标签和结束标签 |
handle_endtag(tag) | 遇到结束标签时调用 |
handle_da |