利用Python抓取和解析网页(一)
来源:互联网 发布:mysql查找替换字符串 编辑:程序博客网 时间:2024/04/30 08:57
上述代码的执行结果如下所示:
用Google搜索python时地址栏中URL的解析结果
'hl=en&q=python&btnG=Google+Search', '')
反解析python文档页面的URL
http://www.python.org/lib/module-urlparse.html
利用拼接方式添加更多python文档页面的URL
http://www.python.org/lib/module-urllib.html
http://www.python.org/lib/module-urllib2.html
http://www.python.org/lib/module-httplib.html
http://www.python.org/lib/module-cgilib.html
通过拼接子路径来生成Python文档页面的URL
http://www.python.org/lib/module-urllib2/request-objects.html
二、打开HTML文档
上面介绍了如何解析页面的URL,现在开始讲解如何通过URL打开一个网页。实际上,Python所带的urllib和urllib2这两个模块为我们提供了从URL打开并获取数据的功能,当然,这包括HTML文档。
u = urllib.urlopen(webURL)
u = urllib.urlopen(localURL)
buffer = u.read()
print u.info()
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对象)也许会伴随一个重定向。获取的网页URL也许和要求的网页URL不一样。
另一个常用的函数是位于从urlopen返回的类文件对象中的info()函数,这个函数可以返回URL位置有关的元数据,比如内容长度、内容类型,等等。下面通过一个较为详细的例子来对这些函数进行说明。
webURL = "http://www.python.org"
localURL = "index.html"
#通过URL打开远程页面
u = urllib.urlopen(webURL)
buffer = u.read()
print u.info()
print "从%s读取了%d 字节数据./n" % (u.geturl(),len(buffer) )
#通过URL打开本地页面
u = urllib.urlopen(localURL)
buffer = u.read()
print u.info()
print "从%s读取了%d 字节数据./n" % (u.geturl(),len(buffer) )
上面代码的运行结果如下所示:
Server: Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_ssl/2.2.9 OpenSSL/0.9.8g mod_wsgi/2.3 Python/2.5.2
Last-Modified: Thu, 25 Jun 2009 09:44:54 GMT
ETag: "105800d-46e7-46d29136f7180"
Accept-Ranges: bytes
Content-Length: 18151
Connection: close
Content-Type: text/html
从http://www.python.org读取了18151 字节数据.
Content-Type: text/html
Content-Length: 865
Last-modified: Fri, 26 Jun 2009 10:16:10 GMT
从index.html读取了865 字节数据.
三、小结
对搜索引擎、文件索引、文档转换、数据检索、站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理。事实上,通过Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览器就能够解析和处理HTML文档。本文中,我们介绍了一个可以帮助简化打开位于本地和Web上的HTML文档的Python模块。在下篇中,我们将论述如何使用Python模块来迅速解析在HTML文件中的数据,从而处理特定的内容,如链接、图像和Cookie等。
- 利用Python抓取和解析网页(一)
- 利用Python抓取和解析网页(一)
- 利用Python抓取和解析网页(一)
- 利用Python抓取和解析网页(下)
- 利用Python抓取和解析网页(1)
- 利用Python抓取和解析网页(2)
- 利用Python抓取和解析网页(3)
- 利用Python抓取和解析网页(4)
- 利用Python抓取和解析网页(5)
- 利用Python抓取和解析网页
- 利用Python抓取和解析网页
- 利用Python抓取和解析网页(…
- 利用Python抓取和解析网页 .
- 利用Python抓取和解析网页
- 利用Python抓取和解析网页(二)
- 利用Python抓取和解析网页(转载)
- Python抓取和解析网页
- 利用Python抓取和解析网页(转载) HTMLParser 和 urllib
- 《COM技术内幕》图摘
- 从今天开始写博客了
- aswing组件知识点
- NetBeans 时事通讯(刊号 # 140 - Mar 22, 2011)
- 【叶子函数分享四十三】SQL数字转英文函数
- 利用Python抓取和解析网页(一)
- Win7的网络共享
- 【叶子函数分享四十四】全角半角转换函数
- 爱或者不爱
- 先写个symbian的吧 symbian中的.pkg文件详解
- 需要写一写了
- 以前代码无法运行的一系列问题
- Struts2的模型驱动、属性驱动的理解
- 进步DSP代码运行性能的研究