1

を使用してデータを抽出したいこのようなリンクがRCurlあります。その前に免責事項のページがあり、データを評価する前にブラウザでクリックする必要があります。以前は、hereからの以下のスクリプトを使用して、免責事項ページを「バイパス」し、次を使用してデータにアクセスしましたRCurl

 pagesource <- getURL(url,.opts=curlOptions(followlocation=TRUE,cookiefile="nosuchfile"))
 doc <- htmlParse(pagesource)

以前は機能していましたが、ここ数日で機能しなくなりました。実際、コードが何をしているのかよくわかりません。何かを変更する必要があるのcurlOptionsでしょうか、それともコード全体を書き直す必要があるのでしょうか。

ありがとう。

4

1 に答える 1

1

私のコメントで述べたように、あなたの問題の解決策は完全に「免責事項ページ」の実装に依存します。以前のソリューションでは、ここでより詳細に定義されたcURLオプションを使用したようです。基本的に、cURLに指示するのは、偽のCookieファイル(「nosuchfile」という名前)を提供し、アクセスしようとしたサイトからのヘッダーリダイレクトに従うことです。どうやらそのサイトは、訪問者が適切なCookieを持っていないと主張した場合、すぐに免責事項ページを通過して訪問者をリダイレクトするように設定されていました。

作業ディレクトリに「nosuchfile」という名前のファイルを作成したことはありませんか?そうでない場合は、ターゲットサイトが免責事項ページの動作方法を変更したようです。その場合、診断のためにアクセスしようとしている実際のページがない限り、私たちが提供できる支援は実際にはありません。

質問で参照している例では、Javascriptを使用して免責事項を通過していますが、これを通過するのは難しい場合があります。

しかし、あなたが言及した例では...

  1. Chrome(またはFirebugを搭載したFirefox)で開きます
  2. ページの空白部分を右クリックして、[要素の検査]を選択します
  3. [ネットワーク]タブをクリックします
  4. そこにコンテンツがある場合は、下部にある[クリア]ボタンをクリックしてページを空にします。
  5. 使用許諾契約に同意する
  6. ネットワークを通過するすべてのトラフィックを監視します。私の場合、一番上の結果は興味深いものでした。クリックすると、プレビューして、実際にHTMLドキュメントであることを確認できます。そのアイテムの下にある[ヘッダー]タブをクリックすると、[リクエストURL]が表示されます。私の場合、それは次のとおりです

手動またはcURLから、ライセンス契約に同意することなく、そのURLに直接アクセスできます。

すでに契約に同意している場合、このサイトには、使用許諾契約ページに戻るために削除する必要があることを示すCookieが保存されていることに注意してください。これを行うには、[リソース]タブをクリックし、[Cookie]に移動して各Cookieを削除し、上記で投稿したURLを更新します。

于 2012-04-18T16:43:10.817 に答える