2017-10-17 4 views
-2

私は、Metaオフィスのウェブサイトからロンドンの夜間の最低気温をVBAのウェブスクレーパーで取得しようとしています。私はhereとしてコードを使用しようとしました。コードが実行されている間、コピーする必要があるコピーはありません。援助は非常に高く評価されるだろう。vbaを使用してウェブサイトからデータをスクラビングする4

Sub WebScrape_1() 

'Create an Internet Explorer browser 
Dim appIE As Object 
Set appIE = CreateObject("internetexplorer.application") 

'Browse the browser to the target webpage 
With appIE 
    .Navigate "https://www.metoffice.gov.uk/public/weather/forecast/gcpvj0v07" 
    .Visible = True ' False activate when happly with code 
End With 

'Wait while loading 
Do While appIE.Busy 
    DoEvents 
Loop 

'What aspect of the webpage to copy 
Set allRowOfData = appIE.document.getElementById("nightValue0") 

Dim myValue As String: myValue = allRowOfData.innerHTML 

'Close the browser 
appIE.Quit 
Set appIE = Nothing 

'Paste the data into the selected range 
ActiveWorkbook.Sheets("Data_Temp").Range("C7").Value = myValue 

End Sub 
+3

を '...私はここで誰もがそれは – jsotola

+1

が@jsotolaに同意何を意味するのか推測する彼らの時間を無駄になることはないと思います。結果はありますか?間違った結果?結果がありません?エラーメッセージ?コードを実行するときに何が起こっているかについての詳細情報を提供する必要があります。 – freginold

+0

質問を少し更新しました。私のコードをウェブページの関連セクションにコピーする方法をわからない。 – Karm

答えて

2

簡単な質問Karm。申し訳ありませんが、このコミュニティには失礼なメンバーがいます。

"FirstChild"と "innertext"をコードに追加するだけです。もし私があなただったら、特に「読み込み中の待機」の部分にコードを違った方法で書きます。それは効率的な方法ではありません。とにかく、以下の作業コードを見つける:何luck`は、問題の任意の種類を説明しません

Sub WebScrape_1() 

'Create an Internet Explorer browser 
Dim appIE As Object 
Set appIE = CreateObject("internetexplorer.application") 

'Browse the browser to the target webpage 
With appIE 
    .Navigate "https://www.metoffice.gov.uk/public/weather/forecast/gcpvj0v07" 
    .Visible = True ' False activate when happly with code 
End With 

'Wait while loading 
Do While appIE.Busy 
    DoEvents 
Loop 

'What aspect of the webpage to copy 
Set allrowofdata = appIE.document.getElementById("nightValue0").FirstChild 
allrowofdata = allrowofdata.innertext 

'Close the browser 
appIE.Quit 
Set appIE = Nothing 

'Paste the data into the selected range 
ActiveWorkbook.Sheets("Sheet1").Range("C7").Value = myValue 

End Sub 
+1

このサイトの目的であるOP - *だけでなく、他人にとって有益な明確な質問をすることについては失礼ではありません。Stack Overflowは "ヘルプ** ME **デバッグ**" *コード "のサイト。あなたはすでに知っているはずです - 私はあなたが[ツアー]を受け取り、前に[尋ねる]ことを確信していますか? 1人の代表者と2ヶ月の歴史を持つことで、あなたはそのメタランニングを自分自身に守ることができました。 –

+0

Thaks @rlemmi明日私はオフィスに戻ってくるときにこれを試してみましょう – Karm

+0

あなたは大歓迎です!タイトルをもっと意味のあるものに変更することを忘れないでください。 @ Mat'sMug攻撃した場合の謝罪。私はちょうど新しいメンバーに丁寧であることが良いと思う。あなたは良いコミュニティを育成したい。あなたとあなたの1,000以上のレーティングはそれを今すぐ知っているはずです。タイトルや質問をもっと良い方法で変更するよう頼んだことがあります。 次回から「してください」または「ありがとう」という言葉を使用してみてください。私は1人の担当者と2ヶ月の歴史を持つこのユーザーがあなたに何かを教えてくれることを願っています:)。 –

関連する問題