2012-04-18 6 views
1

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

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

それは前に働かないが、最近の数日で、それ何の長い作品。実際に私はそれが何をしているかについて多くのアイデアを持っていない、私はcurlOptionsの何かを変更する必要があるのだろうか、またはコード全体を書き直すのだろうか?

ありがとうございました。

+0

これは実際にアクセスしようとしているサイトですか?私はこのソリューションがサイト依存性が非常に高いと思います。 –

+0

@Jeffはい、アクセスしたいページの1つです – lokheart

答えて

1

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

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

あなたの質問で参考にした例では、Javascriptを使用して免責条項を超えて移動しています。しかし、あなたが言及例えば

、...

  1. は右ページ内のいくつかの空白をクリックしてください(FirebugのでまたはFirefox)Chromeでそれを開き、
  2. 「エレメントを点検」を選択
  3. [ネットワーク]タブをクリック
  4. コンテンツがある場合は、下部の[クリア]ボタンをクリックしてページを空にします。
  5. ライセンス契約に同意してください
  6. ネットワークを経由するすべてのトラフィックを監視します。私の場合、一番の結果は興味深いものでした。これをクリックすると、実際にHTML文書であることを確認することができます。その項目の下にある「ヘッダー」タブをクリックすると、「要求URL」が表示されます。私の場合、それはでした:http://bank.hangseng.com/1/PA_1_1_P1/ComSvlet_MiniSite_eng_gif?app=eINVCFundPriceDividend&pri_fund_code=U42360&data_selection=0&keyword=U42360&start_day=30&start_month=03&start_year=2012&end_day=18&end_month=04&end_year=2012&data_selection2=0

あなたが任意のライセンス契約に同意することなく、どちらの手によって、またはcURLのから直接そのURLにアクセスすることができます。

すでに同意している場合、このサイトには、ライセンス契約ページに戻るために削除する必要のあるクッキーが保存されています。 「リソース」タブをクリックし、「クッキー」に行き、それぞれを削除して、上記のURLを更新することで、これを行うことができます。

関連する問題