2011-02-18 30 views
1

我用pyquery构建网页:Pyquery无效的html代码

> page = PyQuery('<html><head><script type="text/javascript" src="jquery-1.4.min.js"></script><script type="text/javascript" src="tools.min.js"></script></head><body></body></html>') 
> print page 
Output: <html><head><script type="text/javascript" src="jquery-1.4.min.js"/><script type="text/javascript" src="tools.min.js"/></head><body/></html> 

脚本(和身体)标签不应该这样结束,但。 Firefox忽略标题的其余部分。

我试图突破上述成单一元素(即一次添加一个脚本标记),但无济于事:

> page = PyQuery('<html><head></head></html>') 
> page.find('head').append('<script type="text/javascript" src="jquery-1.4.min.js"/></script>') 
> page.find('head').append('<script type="text/javascript" src="tools.min.js"></script>') 
Output: <html><head><script type="text/javascript" src="jquery-1.4.min.js"/><script type="text/javascript" src="tools.min.js"/></head><body/></html> 

同样的事情发生与<iframe/>标签(强制使用这些因youtube),它们不会被firefox关闭,所有后续代码都会被忽略。

我怎么能强制pyquery关闭这些使用单独的关闭标签,因为我相信,是根据html标准。噢,如果有人想知道,我没有在美丽的脸上做这一切,因为(1)我得到美丽的错误,(2)这是一个不推荐的包,作者在一两年前停止支持它。

回答

1

尝试:

page = PyQuery('<html><head><script type="text/javascript" src="jquery-1.4.min.js">\n</script><script type="text/javascript" src="tools.min.js">\n</script></head><body></body></html>') 

它还适用于iframe中。

1

您应该使用print page.__html__()转储html或更好的print page.html(method='html')