我尝试从Amazon.co.uk下载高分辨率图片。我尝试了[thread][1]中给出的代码,但遇到了一些问题。
由@QHarr编写的代码对于给定的www.example.com网站运行良好Amazon.in,但当我尝试访问Amazon.co.uk,
.querySelector(“#landingImage”).getAttribute(“data-old-hires”)没有返回任何结果。下面是我正在测试的代码。
Public Sub GetInfo()
Dim Html As HTMLDocument, results()
Set Html = New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://www.amazon.co.uk/dp/product/B01GFJWHZ0", True
.send
Html.body.innerHTML = .responseText
With ThisWorkbook.Worksheets("Sheet1")
.Cells(1, 2) = Html.querySelector("#productTitle").innerText
.Cells(1, 2).Offset(0, 1) = Html.querySelector("#landingImage").getAttribute("data-old-hires")
End With
End With
End Sub
知道我到底做错了什么吗
1条答案
按热度按时间mv1qrgav1#
我猜响应的html被破坏了,但是你可以很容易地用正则表达式从响应字符串中去掉这一部分。
注意,async参数也设置为False,以便有时间加载数据。我有点惊讶您的代码达到了您所说的程度。它还应该在HTMLDocument中没有与该选择器匹配的事实上出错。
正则表达式: