2011-02-18 64 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')