【发布时间】:2013-10-18 13:15:00
【问题描述】:
我目前正在学习 Python,并尝试学习网络抓取。我一直在使用从一些教程中获得的示例代码,但是在我正在查看的网站之一中遇到了问题。以下代码应该返回网站的标题:
import urllib
import re
urls = ["http://www.libyaherald.com"]
i=0
regex='<title>(.+?)</title>'
pattern = re.compile(regex)
while i< len(urls):
htmlfile = urllib.urlopen(urls[i])
htmltext = htmlfile.read()
titles=re.findall(pattern,htmltext)
print titles
i+=1
《利比亚先驱报》网站的标题返回了一个错误。我查看了《利比亚先驱报》的源代码,DOC TYPE 是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">。
文档类型是否与我无法从中获取信息有关?
【问题讨论】:
-
正则表达式完全不适合网页抓取,使用 xpath 会更好。还有许多工具可以让您的流程更易于管理和运行,例如scrapy.org
标签: python python-2.7 web-scraping