トレントサイトの映画情報を解析するためにvbaにスクレーパーを書きました。私はこの仕事を達成するためにIE
とqueryselector
を使用しました。私のコードを実行すると、すべてのエラーがポップアップして解析されます。続行するのではなく、どこかでエラーが表示されるようです。エラーボックスをキャンセルすると、結果が表示されます。私は以下の2つの画像をアップロードして、私が過ちているエラーを表示しています。エラーを発生させずにコードを正常に実行するにはどうすればよいですか?前もって感謝します。ここですべてが完了したらブラウザを終了する代わりにスクレーパーがエラーをスローする
は完全なコードです:
Sub Torrent_Data()
Dim IE As New InternetExplorer, html As HTMLDocument
Dim post As Object
With IE
.Visible = False
.navigate "https://yts.am/browse-movies"
Do While .readyState <> READYSTATE_COMPLETE: Loop
Set html = .Document
End With
For Each post In html.querySelectorAll(".browse-movie-bottom")
Row = Row + 1: Cells(Row, 1) = post.queryselector(".browse-movie-title").innerText
Cells(Row, 2) = post.queryselector(".browse-movie-year").innerText
Next post
IE.Quit
End Sub
私がいるエラー:エラーの
の両方が同時に登場しています。 私はInternet Explorer 11を使用しています。
一方、私が以下のようにしようとすると、問題は無事に成功します。
Sub Torrent_Data()
Dim IE As New InternetExplorer, html As HTMLDocument
Dim post As Object
With IE
.Visible = False
.navigate "https://yts.am/browse-movies"
Do While .readyState <> READYSTATE_COMPLETE: Loop
Set html = .Document
End With
For Each post In html.getElementsByClassName("browse-movie-bottom")
Row = Row + 1: Cells(Row, 1) = post.queryselector(".browse-movie-title").innerText
Cells(Row, 2) = post.queryselector(".browse-movie-year").innerText
Next post
IE.Quit
End Sub
私は、ライブラリに追加した参考:だから
1. Microsoft Internet Controls
2. Microsoft HTML Object Library
、queryselector
または何私が正常に行かせるためにここに欠けていると何が間違っていますか?ライブラリをエラーをなくすために追加するリファレンスはありますか?
クイックチェック: 'queryselector'を' querySelector'に変更すると、最初のコードサンプルに違いはありますか? – alecxe
いいえ、全く変更はありません。実際、 'querySelector'を書くと、自動的に' queryselector'という小文字に戻ります。 – SIM
さて、これを試してください: 'post.queryselector'を実行する代わりに' post.innerText'を直接実行してください。あなたがしたいことではありませんが、実験しましょう。あなたは同じエラーを見ますか?ありがとう。 – alecxe