如何从html页面链接中提取javascript,css和img标签?我是否需要使用正则表达式,或者已经有一些用于html解析的轻量级库?
答案 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,它是一个解析器库,特别是用于从可能无效的标记中收集信息的构建,就像你在那里找到的东西一样。