【问题标题】:How to get links from "Inspect element" on page in python?如何从python页面上的“检查元素”获取链接?
【发布时间】:2015-05-30 18:07:13
【问题描述】:

我需要从网页获取视频链接。我点击检查元素并转到网络选项卡,我看到一个我需要获取的链接......但是我如何通过 python 访问这个链接?

情况是这样的: http://i.imgur.com/DS811BW.jpg?1

链接位于标题中:

http://i.imgur.com/5C2vKje.jpg

我只需要链接,不需要下载视频。

最好的方法是什么?也许是硒?

【问题讨论】:

    标签: python selenium web screen-scraping


    【解决方案1】:

    硒会起作用,是的。您要做的是在 DOM 中找到将其拉入的元素。不过,在您走这条路之前,您应该尝试手动找出您要寻找的元素。您可能正在寻找一个视频标签及其子源标签。

    HTML 5 视频标签文档:http://www.w3schools.com/tags/tag_video.asp

    Selenium 选择器文档:https://selenium-python.readthedocs.org/locating-elements.html

    【讨论】:

    • 谢谢大佬,但不是HTML5视频,是用flash实现的mp4文件。这是网站rtl.hr/rtl-sada/gastro/tri-dva-jedan-kuhaj/…
    • 那些正在导入网站使用的各种 js 和 css 文件。您将要查找 swf 对象。除此之外,我不确定如何获取 swf 正在提取的 URL。
    • 我也没有提到当我点击视频/mp4 项目(来自问题中的屏幕截图)时,.mp4 链接位于响应标题中。也许不需要硒?我只是不知道如何从 html 响应中提取这个确切的标题
    • 我不确定 selenium 在这一点上是否正确。也许在最初的问题中更详细地说明您到底想对视频做什么;根据最终目标,可能还有其他选择。
    【解决方案2】:

    你只需要做一个 HTTP 请求来获取页面,然后通过响应来获取 url。您需要定义 XPath 并使用 lxml 来获取 URL。类似的东西(这只是一个例子,可能不会直接工作):

    import lxml.html as parser
    import requests
    
    path = <define the XPATH>
    url = <your url>
    
    data = do_request(url)
    if data:
        doc = parser.fromstring(data) 
        url_res = doc.xpath(path) #the url from the webpage
    
    #do_requests() example
    def do_request(url):
        r = requests.get(url)
        return r.text if r.status_code == 200 else None
    

    【讨论】:

    • HTML 响应中没有直接链接,我认为该页面通过一些脚本请求获取视频链接,然后将其放入 Flash 播放器中
    • 您要做的事情并不容易,因为视频是由播放器“封装”的。没有“直接链接”来获取视频。请检查这个帖子:stackoverflow.com/questions/8660526/…
    • 其实有一个直接链接,可以通过前面提到的inspect元素访问。链接是(服务器)..../repository/media/b/f/bf27b3354c83c37611e73f97495b5e1d.mp4?ver=1 我知道这并不容易,只是想知道是否可能。
    • 因此,如果有直接链接并且您可以通过检查元素访问它,您可以从 http 响应中获取它。我只是在这里打开视频rtl.hr/repository/media/b/f/…,所以你可以通过这个链接下载这个文件。您只需要遍历内容,例如 for chunk in r.iter_content(chunk_size=255) 写入磁盘中的文件,即 r = requests.get(video_url)
    • 我想我并不清楚我想做什么。不过还是谢谢。 :) 我的目标是只抓取视频链接,因为我的应用程序需要它。它将获取所需剧集的链接并在 VLC 等本地播放器中播放。所以我需要编写一个接受剧集链接的脚本,并且只返回 .mp4 链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2017-11-14
    • 2020-03-14
    相关资源
    最近更新 更多