如何从html页面链接中提取javascript,css和img标签?

时间:2011-06-26 22:03:29

标签: python

如何从html页面链接中提取javascript,css和img标签?我是否需要使用正则表达式,或者已经有一些用于html解析的轻量级库?

3 个答案:

答案 0 :(得分:2)

HTML5Lib与lxml结合使用是我喜欢使用HTML文档中的提取数据。它以与现代浏览器类似的方式从错误中恢复,因此它使得破解的html更容易使用。

如果你真的想在网页中运行 js代码(比如链接是通过函数计算的),你应该考虑查看webkit和jswebkit包,这些包可以让你运行javascript无头webkit窗口,可以让你动态生成的内容供你的python解析器检查。

通过webkit在python中运行js真的不是很难,但是期望内存使用与运行webkit浏览器相同。

答案 1 :(得分:1)

BeautifulSoup可以解决问题。

import urllib
from BeautifulSoup import BeautifulSoup

sock = urllib.urlopen("http://stackoverflow.com")
soup = BeautifulSoup(sock.read())
sock.close()

img = soup.findAll("img")
script = soup.findAll("script", {"type" : "text/javascript"})
css = soup.findAll("link", {"rel" : "stylesheet"})

答案 2 :(得分:0)

HTML不是可由正则表达式解析的语言。所以甚至不尝试。它中断。

我通常使用的是Beautiful Soup,它是一个解析器库,特别是用于从可能无效的标记中收集信息的构建,就像你在那里找到的东西一样。