【问题标题】:HTMLReader having difficulty scraping video linksHTMLReader 难以抓取视频链接
【发布时间】:2015-07-09 02:44:31
【问题描述】:

我正在使用 HTMLReader 删除应用中的视频链接。但是,似乎没有按视频 ID 报废的选项,最常见的用法通常是用于图像。

选择器问题

我想获取此视频 id 的 src。我可以在视频 id 之前获取前面的 div,但我无法获取确切的视频 id,从而我将获得下一个 src。

let someHTML = document.nodesMatchingSelector(".my_video_1_html5_api")

我的尝试是直接引用视频 ID

<video id="my_video_1_html5_api"     class="vjs-tech" preload="auto" src="https://redirector.googlevideo.com/videoplayback?requiressl=yes&amp;id=45d2fdf73f5ea442&amp;itag=22&amp;source=picasa&amp;cmo=secure_transport%3Dyes&amp;ip=0.0.0.0&amp;ipbits=0&amp;expire=1438962730&amp;sparams=requiressl,id,itag,source,ip,ipbits,expire&amp;signature=A1870313E674D7D0FAAA420CB49BAC57C744A158.45144C1E44617AE5405CE7A27517A4B84DDAE50C&amp;key=lh1"></video>

【问题讨论】:

    标签: html ios objective-c swift


    【解决方案1】:

    您可以使用以下方式访问节点的attributes

    let someHTML = document.nodesMatchingSelector(".vjs-tech")
    
    for node in someHTML {
        print(node.attributes["src"]!)
    }
    

    您可以按类或按属性使用CSS-Selectors,请查看以下示例:

    • let someHTML = document.nodesMatchingSelector(".vjs-tech") 表示类为vjs-tech的元素
    • let someHTML = document.nodesMatchingSelector("[video id]") 表示具有video id 属性的元素,无论该属性的值如何。

    希望对你有所帮助。

    【讨论】:

    • someHTML 打印为 nil,因此无法检索任何 src
    • 查看更新的答案,您需要匹配正确的 Css 选择器。
    • 很奇怪,当我尝试这些建议时,someHTML 仍然打印为 nil。我尝试检索其他一些不是视频 ID 的随机 div,并且效果很好
    • 你是否使用类名进行测试?
    • @VictorSigler 您指向 CSS-Selectors 文档的链接拯救了我的一天?。特别是这是我正在寻找的语法E[foo*="bar"]:一个 E 元素,其“foo”属性值包含子字符串“bar”。请注意与 E[foo="bar"] 的区别,其中“foo”属性完全等于“bar”。
    猜你喜欢
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多