【问题标题】:Can't scrape an image link which is available in page source from a webpage无法从网页中抓取页面源中可用的图像链接
【发布时间】:2021-05-11 23:51:41
【问题描述】:

我正在尝试使用 xmlhttp 请求从 webpage 获取食谱图像链接。图像链接在某些样式属性中的页面源中可用。 但是,当我尝试如下操作时,我得到 background-image 作为输出,而 style 的值包含图像链接。

到目前为止我已经尝试过:

Sub GrabImageLink()
    Const Url$ = "https://www.yumm.ca/en/recipe/salmon-green-curry-1"
    Dim HTML As HTMLDocument, Http As Object
    
    Set HTML = New HTMLDocument
    Set Http = CreateObject("MSXML2.XMLHTTP")

    With Http
        .Open "Get", Url, False
        .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"
        .send
        HTML.body.innerHTML = .responseText
    End With
    
    Debug.Print HTML.querySelector(".recipe-visual").getAttribute("style")
End Sub

当前输出:

background-image

预期输出:

https://cdn.yumm.ca/uploads/images/572b58ad0ed35a3d0294484ec535a131/salmon-green-curry@2x_s.jpg

【问题讨论】:

    标签: excel vba web-scraping xmlhttprequest


    【解决方案1】:

    这在 JS 中同样令人讨厌。要获取属性值,您必须直接引用样式属性,因此使用以下内容即可:

    HTML.querySelector(".recipe-visual").Style.backgroundImage
    

    代码编辑器实际上会在您输入HTML.querySelector(".recipe-visual").Style 后弹出所有可用属性,这很方便

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2021-11-25
      相关资源
      最近更新 更多