我有一個JavaScript代碼,只顯示一個HTML頁面:保存HTML文本
javascript:h=document.getElementsByTagName('html')[0].innerHTML;function%20disp(h){h=h.replace(/</g,%20'\n<');h=h.replace(/>/g,'>');document.getElementsByTagName('body')[0].innerHTML='<pre><html>'+h.replace(/(\n|\r)+/g,'\n')+'</html></pre>';}void(disp(h));
的源代碼,我的代碼保存爲在Firefox書籤。因此,在加載網頁後,當我從書籤中選擇代碼時,它會顯示源代碼。
現在我嘗試使用python保存html文件。
from BeautifulSoup import BeautifulSoup
from BeautifulSoup import BeautifulStoneSoup
import BeautifulSoup
import urllib2
from BeautifulSoup import BeautifulSoup
page = urllib2.urlopen("http://www.doctorisin.net/")
soup = BeautifulSoup(page)
print soup.prettify()
fp = open('file.txt','wb')
fp.write(soup.prettify())
但它沒有javascript代碼所有的內容。保存的文件和javascript顯示的源文件不一樣。也許python代碼不能從html頁面獲取所有代碼(javascript/css標記代碼)。問題是什麼?難道我做錯了什麼?需要幫助
謝謝
EDITED
由於我的問題的一個例子,http://phpjunkyard.com/tutorials/cut-paste-code.php(隨機網站)圍棋到這個網站,右鍵點擊並選擇查看頁面源(firefox)複製源並保存在一個文本文件中。現在保存頁面(保存頁面爲)。你可以看到兩者不一樣。保存的頁面(另存爲)還有更多內容。 Python給出了類似於源代碼的輸出(查看頁面源代碼)。它缺少一些腳本,表單等。
這看起來像一個BeautifulSoup問題,而不是Ubuntu問題。您不是簡單地將源文件保存爲文本,而是在保存之前使用一些代碼修改源文件。如果您想保存源代碼,請嘗試從您選擇的瀏覽器中右鍵單擊菜單,並且應該可以很容易地保存它。 – Wolfger 2012-01-12 13:21:53
爲什麼你期望BeautifulSoup呈現JavaScript? – theta 2012-01-12 14:04:41
另外,爲什麼你的代碼片段中有這麼冗餘的導入? – theta 2012-01-12 14:08:22