0

次のコードを呼び出して URL にアクセスし、そのページのコンテンツを印刷しようとしました。

import urllib2
f = urllib2.urlopen("https://www.reaxys.com/reaxys/secured/customset.do?performed=true&action=get_preparations&searchParam=1287039&workflowId=1338317532514&workflowStep=1&clientDateTime=2012-05-29%2015:17")
page = f.read()
print page
f.close()

URL がどこからでもアクセスできるかどうかはわかりません。そのため、そのページのコンテンツにすべての人がアクセスできるとは限りません。

このページでは、ユーザーがページにとどまることができる時間の制限を設定します。その後、ユーザーがタイムアウトに達したことを示すポップアップが表示されます。

私が遭遇した問題は次のとおりです。URL をブラウザーに入力すると、すべて正常に開きました。しかし、Pythonがそのページから読み取ったものを印刷しようとすると、Pythonは、ページがタイムアウトに達したときにのみポップアウトするページを読み取りました.

何が問題なのかわかりません。それは Python ですか、それとも Web サイトですか? そのページの実際のコンテンツをPythonに読み取らせるにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

1

Web サイトによって設定されている Cookie に関連しているようです。URLにアクセスすると

https://www.reaxys.com/reaxys/secured/customset.do?performed=true&action=get_preparations&searchParam=1287039&workflowId=1338317532514&workflowStep=1

私のブラウザでは、同じタイムアウト エラーが発生します。更新すると、サイトは正常に読み込まれます。しかし、サイトから Cookie を消去して再試行すると、再びタイムアウトになります。そのため、タイムスタンプを追加してページが表示される前にチェックするプロセスがサイトで実行され、何らかの理由で Cookie を設定できない場合はデフォルトでタイムアウトになっていると思われます ( Python スクリプト内)。

設定されている Cookie の詳細な調査を行うことをお勧めします (タイムアウト ロジックの一部を処理しているように見えるそのページの Javascript から始めます) 。 /www.testingreflections.com/node/view/5919http://stockrt.github.com/p/emulating-a-browser-in-python-with-mechanize/など。

(これは、Elsevier のサイトのスクレイピングを容認することを意図したものではありません。

于 2012-05-29T20:51:21.620 に答える