【问题标题】:unable to locate element , alt src image link无法定位元素,alt src 图片链接
【发布时间】:2021-07-13 07:50:52
【问题描述】:

尝试从 youtube 获取频道图标图片和横幅图片链接的图片链接,但无法找到元素。

参考下图:

我为频道图标图像尝试过的代码:

channel_icon = driver.find_element_by_xpath(
    "/html/body/ytd-app/div/ytd-page-manager/ytd-browse[2]/div["
    "3]/ytd-c4-tabbed-header-renderer/tp-yt-app-header-layout/div/tp-yt-app-header/div[2]/div[2]/div/div["
    "1]/yt-img-shadow/img").get_attribute("alt src")
print(channel_icon)

它也应该适用于每个频道。

检查网址 -> https://www.youtube.com/c/FlyingBeast320/videos

【问题讨论】:

    标签: python selenium selenium-webdriver web-scraping


    【解决方案1】:

    你可以试试

    channel_icon =  driver.find_element_by_xpath("//div[@id='channel-header-container']//img").get_attribute("src")
    print(channel_icon)
    
    banner_img = driver.find_element_by_xpath(
        '//ytd-c4-tabbed-header-renderer'
    ).get_attribute('style').split(
        '--yt-channel-banner:url('
    )[1].split(');')[0].replace('\\', '')
    print(banner_img)
    

    【讨论】:

    • 工作感谢。你能找到封面图片横幅图片链接吗?
    • 哦,太好了。万分感谢 !你能告诉你是怎么找到的吗?
    • @pkk 只是在网络报废方面有很多经验)
    【解决方案2】:

    您可以使用下面的css selector

    div#channel-header-container img
    

    在代码中:

    channel_icon = driver.find_element_by_css_selector("div#channel-header-container img").get_attribute("src")
    print(channel_icon)
    

    【讨论】:

    • 它给出了一些其他图标,它给出了来自封面横幅图片区域的小 instagram 图标
    • 刚刚更新,请重试。使用上述解决方案,您应该得到这个encrypted-tbn0.gstatic.com/… - 作为输出。
    • 不工作我应该得到这个链接-> yt3.ggpht.com/ytc/…
    • 用css更新了上面的整个代码,希望对你有帮助
    • 不,我认为这不是可点击的吗?您是否手动尝试过?我看到了这个href="null"
    猜你喜欢
    • 2012-04-27
    • 1970-01-01
    • 2012-06-05
    • 2012-01-11
    • 1970-01-01
    • 2016-01-15
    相关资源
    最近更新 更多