我已经在vba中编写了一些代码,使用.createDocumentFromUrl()
方法从torrent网站获取电影名称。由于我从未使用过这种方法,并且没有找到任何可以成功使用的显着信息,我会陷入困境。不过我试过创建一个脚本。
这是我的尝试:
Sub Fromurl_Method()
Const URL As String = "https://yts.am/browse-movies"
Dim hStart As HTMLDocument, hdoc As HTMLDocument
Set hStart = New HTMLDocument
Set hdoc = hStart.createDocumentFromUrl(URL, vbNullString)
Do While hdoc.readyState = "loading" Or hdoc.readyState = "interactive": DoEvents: Loop
Debug.Print hdoc.DocumentElement.innerHTML
End Sub
当我执行上面的脚本时,它会获取一些不是来自该网站的html元素。我仔细研究了我解析过的元素,并在顶部This content cannot be displayed in a frame
注意到这一行。它与大多数网站的行为方式相同。我怎样才能成功?提前致谢。
我的目的是再次使用.createDocumentFromUrl()
来解析该网站上的所有电影名称。
答案 0 :(得分:0)
Sub Get_Info()
Dim Elems, e As Variant
Const READYSTATE_COMPLETE& = 4&
Dim ie As Object
Set ie = Nothing
DoEvents
Set ie = CreateObject("InternetExplorer.Application")
DoEvents
With ie
.Visible = false
.Navigate "https://yts.am/browse-movies"
While Not .readyState = READYSTATE_COMPLETE
DoEvents
Wend
End With
Dim i As Double
With ie.Document
Set Elems = .getElementsByTagName("a")
DoEvents
i = 2
For Each e In Elems
If e.getAttribute("class") = "browse-movie-title" Then
Range("A" & i).Value = e.innerText
i = i + 1
End If
Next e
End With
Set Elems = Nothing
Set e = Nothing
ie.Quit
Set ie = Nothing
End Sub
上面的代码会为您提供所有电影的列表。如果您只需要第一个代码,只需修改代码以使其适应您获取第一个代码的需求。