正如其他人所说,如果不需要实时性能,BeautifulSoup是一个很好的解决方案:
import urllib2
from BeautifulSoup import BeautifulSoup
html = urllib2.urlopen("http://www.google.com").read()
soup = BeautifulSoup(html)
all_links = soup.findAll("a")
Run Code Online (Sandbox Code Playgroud)
至于第二个问题,是的,HTML链接应该是明确定义的,但实际遇到的HTML不太可能是标准的.BeautifulSoup的美妙之处在于它使用类似浏览器的启发式方法来尝试解析您可能实际遇到的非标准,格式错误的HTML.
如果您确定要使用标准XHTML,则可以使用(更多)更快的XML解析器,如expat.
正则表达式,由于上述原因(解析器必须维护状态,正则表达式不能这样做)永远不会是一般解决方案.
| 归档时间: |
|
| 查看次数: |
13912 次 |
| 最近记录: |