python网页数据抓取(如何通过URL打开一个网页的URL模块解析HTML二)
优采云 发布时间: 2022-01-29 23:27python网页数据抓取(如何通过URL打开一个网页的URL模块解析HTML二)
二、打开 HTML 文档
上面描述了如何解析页面的URL。现在让我们解释如何通过 URL 打开网页。事实上,Python 附带的 urllib 和 urllib2 模块为我们提供了从 URL 中打开和检索数据的能力,当然也包括 HTML 文档。
importurllib
u=urllib.urlopen(webURL)
u=urllib.urlopen(localURL)
buffer=u.read()()print"从 %s 读取 %d 个字节的数据。\n"%(u.geturl(),len(buffer))
要通过 urllib 模块中的 urlopen(url[,data]) 函数打开 HTML 文档,必须提供文档的 URL 地址,包括文件名。函数 urlopen 不仅可以打开位于远程 Web 服务器上的文件,还可以打开本地文件并返回一个类似文件的对象,通过该对象我们可以从 HTML 文档中读取数据。
打开 HTML 文档后,我们可以像普通文件一样使用 read([nbytes])、readline() 和 readlines() 函数读取文件。要读取整个 HTML 文档的内容,可以使用 read() 函数,它将文件内容作为字符串返回。
打开地址后,您可以使用 geturl() 函数获取被抓取页面的实际 URL。这很有用,因为 urlopen(或使用的 opener 对象)可能伴随着重定向。获取的网页网址可能与请求的网页网址不同。
另一个常用的函数是位于从urlopen返回的类文件对象中的info()函数。此函数返回有关 URL 位置的元数据,例如内容长度、内容类型等。下面通过更详细的示例来描述这些功能。
importurllib
webURL="
buffer=u.read()()print"从%s读取%d字节数据。\n"%(u.geturl(),len(buffer))#通过URL打开本地页面u= urllib. urlopen(localURL)
buffer=u.read()()print"从 %s 读取 %d 个字节的数据。\n"%(u.geturl(),len(buffer))
以上代码运行结果如下:
日期:2009 年 6 月 26 日星期五:格林威治标准时间 22:11
服务器:Apache/2.2.9(Debian) DAV/2SVN/1.5.1mod_ssl/2.2.9OpenSSL/< @0.9.8g mod_wsgi/2.3Python/2.5.2Last-Modified: Thu,25Jun200909:44:54GMT
ETag:"105800d-46e7-46d29136f7180"接受范围:字节
内容长度:18151连接:关闭
内容类型:文本/html
已读取 18151 字节的数据。
内容类型:文本/html
Content-Length:865Last-modified: Fri,26Jun200910:16:10GMT
从 index.html 读取 865 字节的数据。
三、总结
对于搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序,通常使用网页(即 HTML 文件)的解析。事实上,通过 Python 语言提供的各种模块,我们可以在不借助 Web 服务器或 Web 浏览器的情况下解析和处理 HTML 文档。在本文中,我们介绍了一个 Python 模块,它可以帮助简化打开位于本地和 Web 上的 HTML 文档。在下一篇文章中,我们将讨论如何使用 Python 模块快速解析 HTML 文件中的数据,以处理链接、图像和 cookie 等特定内容。