0

取得したいサイトのURLはこちら

https://salami.parc.com/spartag/GetRepository?friend=jmankoff&keywords=antibiotic&option=jmankoff%27s+tags

次のコードでWebサイトを取得し、次のコードでコンテンツを表示すると、次のようになります。

sock = urllib.urlopen("https://salami.parc.com/spartag/GetRepository?friend=jmankoff&keywords=antibiotic&option=jmankoff's+tags")
html = sock.read()
sock.close()
soup = BeautifulSoup(html)
print soup.prettify()

次の出力が得られます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title>
   Error message
  </title>
 </head>
 <body>
  <h2>
   Invalid input data
  </h2>
 </body>
</html>

urllib2でも同じ結果が得られます。興味深いことに、このURLは知床ウェブブラウザv3.5.7でのみ機能します。(私がそれがうまくいくと言うとき、それは私に正しいページをもたらすことを意味します)。このURLをFirefox3.0.15またはKonquerorv4.2.2にフィードすると。まったく同じエラーページが表示されます(「無効な入力データ」が表示されます)。何がこの違いを生み出すのか、Pythonを使用してこのページを取得する方法がわかりません。何か案は?

ありがとう

4

2 に答える 2

2

urllib2のドキュメントを見ると、

urllib2.build_opener([handler, ...])¶

    .....
    If the Python installation has SSL support (i.e., if the ssl module can be imported), HTTPSHandler will also be added. 

    .....

urllib2をsslモジュールと一緒に使用してみることができます。または、 httplibを使用することもできます

于 2010-03-11T01:08:12.797 に答える
0

これはまさに、Web ブラウザーでリンクをクリックしたときに得られるものです。たぶん、あなたはログインしているか、クッキーを設定しているか、何かを持っているはずです

Linux の firefox 3.5.8 (知床) でも同じメッセージが表示されます。

于 2010-03-11T01:37:26.043 に答える