アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelを使ってスクレイピングの勉強を始めました。
Google翻訳 (https://translate.google.com/?hl=ja#ja/en/)
日本語「おはよう」と入れたら、翻訳された英語「Good morning」を Excelの一行目に表示されるようにしたいのですが、うまくいきません。

「'多分ここがおかしい」

が問題なのではと思うのですが、あれこれやってもNGです。
どなたか教えていただけないでしょうか

Sub Honyaku()

Dim objIE As InternetExplorer
Dim sURL As String

Set objIE = CreateObject("InternetExplorer.Application")

objIE.Visible = True

sURL = "https://translate.google.com/?hl=ja#ja/en/" '日本語 → 英語
objIE.navigate sURL

Wait objIE

objIE.document.getElementById("source").Value = "おはよう"

Call WaitFor(WaitTime) 'n秒停止

On Error GoTo Continue

Dim Eng As Variant

'多分ここがおおかしい
Eng = objIE.document.getElementsByClassName("tlid-translation translation")(0).innerText

Cells(1, 1).Value = Eng

Set objIE = Nothing

Exit Sub

Continue:
MsgBox ("翻訳エラー")
Set objIE = Nothing

End Sub

Sub Wait(ByVal objIE As InternetExplorer)

Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop

End Sub
Function WaitFor(ByVal second As Integer)
Dim futureTime As Date

futureTime = DateAdd("s", second, Now)

While Now < futureTime
DoEvents
Wend
End Function

A 回答 (2件)

こんにちは


回答が無いみたいなので・・・


部分的にしか見てはいませんが、
>Eng = objIE.document.getElementsByClassName("tlid-translation translation")(0).innerText
getElementsByClassNameは単独のクラス名で検索するメソッドです。
>"tlid-translation translation"
は複数のクラス名ですので、ひとつずつで2段階に分けて検索するか、あるいは片方だけで代用できるものならそうするか・・・

両方のクラス名で絞り込んで検索したければ、
querySelectorAllやquerySelectorなどを利用する方が簡単かも知れません。
例えば、
querySelector(".tlid-translation.translation")
とか
    • good
    • 0

サイトのソースを見ると、


getElementsByClassName("tlid-translation translation")(0) で取得しているのは、
<span title="" class="">Good morning</span>
の部分のように見えますが…
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!