第十五章 python和web
本章讨论Python Web编程的一些方面 了其中三个重要的主题:屏幕抓取、CGI和mod_python。 另外还给出了一些指南。
15.1 屏幕抓取
下面讨论两种抓取网站信息可能的解决方案。一是结合使用 程序Tidy(一个Python库)和XHTML解析;二是使用专为屏幕抓取而设计的Beautiful Soup库。
15.1.1 Tidy 和 XHTML 解析
1、Tidy是什么
Tidy是用于对格式不正确且不严谨的HTML进行修复的工具。
2、. 获取Tidy
有多个用于Python的Tidy库包装器,至于哪个最新并非固定不变的。可像下面这样使用pip 来找出可供使用的包装器:
pip search tidy
一个不错的选择是PyTidyLib,可像下面这样安装它:
pip install pytidylib
不管你使用的是哪种操作系统,都可从Tidy网站(http://html-tidy.org)获 取可执行的二进制版本。有了二进制版本后,就可使用模块subprocess(或其他包含popen函数的 模块)来运行Tidy程序了。
(由于windows上没有实现对tidy的支持,暂时略去)
15.1.2 Beautiful Soup
Beautiful Soup是一个小巧而出色的模块,用于解析你在Web上可能遇到的不严谨且格式糟糕 的HTML。Beautiful Soup网站(http://crummy.com/software/BeautifulSoup)称: 那个糟糕的网页并非出自你的手笔。你只是想从中提取一些数据。Beautiful Soup 将向你伸出援手。
安装:
pip install beautifulsoup4
使用Beautiful Soup的屏幕抓取程序 :
from urllib.request import urlopen
from bs4 import BeautifulSoup
text = urlopen('http://python.org/jobs').read()
soup = BeautifulSoup(text, 'html.parser')
jobs = set()
for job in soup.body.section('h2'):
jobs.add('