0

答えが見つからない複雑な問題があります。

Web ページを提供する Python HTTPServer を実行しています。これらの Web ページは、Beautiful Soup の助けを借りて実行時に作成されます。問題は、Firefox が実際のページではなく Web ページの HTML コードを表示することですか? 誰がこの問題を引き起こしているのか本当にわかりません - - Python HTTPServer - Beautiful Soup - HTML Code

いずれにせよ、私はウェブページの HTML の一部をコピーしました:-

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <title>
   My title
  </title>
  <link href="style.css" rel="stylesheet" type="text/css" />
  <script src="./123_ui.js">
  </script>
 </head>
 <body>
  <div>
  Hellos
  </div>
 </body>
</html>

参考までに、私がすでに試したことを以下に示します - Python HTTPServer が MIME ヘッダーを text/html として送信していることを確認しました - HTML コードをコピーして貼り付けるだけで、正しいページが静的として表示されます。ここから、問題が HTTPServer 側にあることがわかります。Firebug は、それが空であり、「この要素にはスタイル ルールがありません。ルールを作成できます。」と示しています。表示されています

エラーが Beautiful Soup にあるのか、HTTPServer にあるのか、HTML にあるのかを知りたいだけですか?

ありがとう、アミット

4

2 に答える 2

2

これをドキュメントの先頭に追加するのはなぜですか?

<?xml version="1.0" encoding="iso-8859-1"?>

これにより、ブラウザはドキュメント全体がXHTMLではなくXMLであると認識します。その行を削除すると、正しくレンダリングされるはずです。Firefox は、HTTP ヘッダーが text/html であると言っている場合でも、XML ドキュメントの通常のようにコンテンツを表示するために展開/折りたたむことができる一連の要素を含むページを表示していると思います。

于 2011-11-17T21:51:09.927 に答える
0

みんな、私はついにこの問題を解決しました。その理由は、コンテンツ タイプが「text/html」の MIME ヘッダーを送信していなかった (送信したと思っていたにもかかわらず) ためでした。

python HTTPServerでは、ファイルに何かを書き込む前に、常にこれを行います:-

self.send_response(301)
self.send_header("Location", self.path + "/")
self.end_headers()
# Once you have called the above methods, you can send the HTML to Client                                                          
self.wfile.write('ANY HTML CODE YOU WANT TO WRITE')
于 2011-11-18T16:39:05.277 に答える