2016-04-08 1 views
0

私はhomedepot.comからデータをスクラップするためのRスクリプトを設定しています。それは、私は地元の店を設定する必要がある製品の在庫レベルをこすりたいという点を除いて、うまくいく。私は成功を収めずにこれを行うためにいくつかの方法を試みました。 homedepot.comでローカルストアを設定するにはどうすればよいですか?私は解決策に私を導いていないこれらの関連の質問を発見した : (R language) How to make a click on webpage using rvest or rcurlRのREST/httrでクッキーを送信する/フォームを送信する:ウェブスクレイピングのためにローカルストアを設定するときの問題

Submit form with no submit button in rvest

How to properly set cookies to get URL content using httr

さらに詳しい情報: - ストアの場所コードはTHDと呼ばれるクッキーに保存されているように見えます-LOC-STORE(4桁の店舗ID付き)。私はこのクッキーを設定するには成功していない:

library("rvest") 
library("httr") 
# try to set cookie in site with store ID: 
session <- html_session("http://www.homedepot.com", set_cookies('THD-LOC-STORE'='2679')) 
# if this worked, it would show the store name instead of "Select a Store": 
storefinder <- session %>% read_html() %>% html_nodes(".headerStoreFinder") %>% html_text() %>% gsub("\\t","",.) 
storefinder 
cookies(session) 

私もrvestでsubmit_form()を使用して考えたが、店舗を選択するためのボタンではJavaScriptによって運営されており、何も選択してボタンをSUBMITはありません。

+0

Skiping home depotはT&Cに違反しており、LinkedInのおかげで、2016/7にはいくつかのケースがあり、広範囲のrobots.txtファイルがあります。これは、バイパスがCFAAに違反していることを示しています。 – hrbrmstr

答えて

2

"私もsubmit_form()をrvestで使用することを考えましたが、ストアを選択するボタンはjavascriptで実行され、選択するSUBMITボタンはありません"という質問への回答が投稿されました。 "Submit form with no submit button in rvestあなたのためにこのソリューションを提供するかもしれません。

簡潔に言えば、あなたのバージョンのコードに送信ボタンを挿入して送信することができます。それを行う方法の詳細はリンク先にあります。

+0

返事をありがとう。私の問題は実際にはJavaScriptが実行される前にrvestがページをダウンロードすることになってしまったので、私はcasperjsを使って読み込まれたページをダウンロードし、それを掻き集めました。あなたの方法は、将来的には有用であるかもしれません。 – Scott

+0

あなた自身の質問に対する答えとしてあなたのために働いた解決策を投稿し、回答を受け入れられた回答として受け入れることができますか?これはStack Overflowで完全にOKであるだけでなく、知識を他の人と共有できるようにすることをお勧めします。 – Tripartio

関連する問題