首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在vba中不能正确地使用querySelector

在vba中不能正确地使用querySelector
EN

Stack Overflow用户
提问于 2017-08-20 11:56:03
回答 4查看 11.6K关注 0票数 2

我用vba编写了一些代码,从一个洪流站点中获取特定网页上的所有电影名称。但是,按下"F8“,我可以发现代码运行良好,并打印结果,直到它到达该页面的最后一个结果。一旦到达要解析的姓氏,程序就会崩溃。我做了几次,并遭受了同样的后果。如果vba不支持这个css选择器方法,那么我如何在最后一个方法之前收集结果呢?在执行之前,是否有任何引用可以添加到库或其他内容中?在这方面的任何帮助都将受到极大的感谢。

下面是我编写的代码:

代码语言:javascript
复制
Sub Torrent_data()

    Dim http As New XMLHTTP60, html As New HTMLDocument
    Dim movie_name As Object, movie As Object

    With http
        .Open "GET", "https://www.yify-torrent.org/search/1080p/", False
        .send
        html.body.innerHTML = .responseText
    End With

    Set movie_name = html.querySelectorAll("div.mv h3 a")

    For Each movie In movie_name
        x = x + 1: Cells(x, 1) = movie.innerText
    Next movie

End Sub
EN

Stack Overflow用户

发布于 2017-08-21 04:36:22

看来querySelectorAll有个问题

无法在“监视”窗口中检查对象html.querySelectorAll(".mv h3 a")

尝试这样做会导致excel或word崩溃(我都尝试过了)

尝试其他标记,结果相同

代码语言:javascript
复制
Sub Torrent_data()

    Dim http As New XMLHTTP60, html As New HTMLDocument
    Dim movie_name As Object, movie As Object

    With http
        .Open "GET", "https://www.yify-torrent.org/search/1080p/", False
        .send
        html.body.innerHTML = .responseText
    End With

'   Set movie_name = html.querySelectorAll("div.mv h3 a")   ' querySelectorAll crashes VBA when trying to examine movie_name object

    Set movie_name = html.getElementsByClassName("mv")      ' HTMLElementCollection

    For Each movie In movie_name
        x = x + 1: Cells(x, 1) = movie.getElementsByTagName("a")(1).innerText
    Next movie

'   HTML block for each movie looks like this

'   <div class="mv">
'       <h3>
'           <a href='/movie/55346/download-smoke-1995-1080p-mp4-yify-torrent.html' target="_blank" title="Smoke (1995) 1080p">Smoke (1995) 1080p</a>
'       </h3>
'       <div class="movie">
'           <div class="movie-image">
'               <a href="/movie/55346/download-smoke-1995-1080p-mp4-yify-torrent.html" target="_blank" title="Download Smoke (1995) 1080p">
'                   <span class="play"><span class="name">Smoke (1995) 1080p</span></span>
'                   <img src="//pic.yify-torrent.org/20170820/55346/smoke-1995-1080p-poster.jpg" alt="Smoke (1995) 1080p" />
'               </a>
'           </div>
'       </div>
'       <div class="mdif">
'           <ul>
'               <li><b>Genre:</b>Comedy</li><li><b>Quality:</b>1080p</li><li><b>Screen:</b>1920x1040</li><li><b>Size:</b>2.14G</li><li><b>Rating:</b>7.4/10</li><li><b>Peers:</b>2</li><li><b>Seeds:</b>0</li>
'           </ul>
'           <a href="/movie/55346/download-smoke-1995-1080p-mp4-yify-torrent.html" class="small button orange" target="_blank" title="Download Smoke (1995) 1080p YIFY Torrent">Download</a>
'       </div>
'   </div>

End Sub
票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45781861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档