Hi
I'm using the following code to scrape a product image on a website. But I can't figure out how to change the queryselector to scrape the image.
For input please use the following url:
https://my.supplychain.nhs.uk/Catalo...riteId=&Query=
The url will be combined with the product id in the spreadsheet and then it will search for the image based on the queryselector.
So I want to scrape the image from this part of the html code.
<div class="productPrevImgThumb">
<a href="/Catalogue/product/fvk216" class="product_thumbnail_preview">
<img src="https://media.supplychain.nhs.uk/media/images/FVK216/thumb/764268_FVK216.jpg" alt="FVK216">
</a>
</div>
Anyone can help me modify the following code?
Sub ImageDownload()
Dim sheet As Worksheet
Dim lastRow As Long
Dim fileFormat As String
Dim IE As New InternetExplorer
Dim folderName As String
Dim i As Long
Dim imgName As String
Dim doc As HTMLDocument
Dim imgUrl As String
Dim dlFunc As Long
Dim urlPath As String
Set sheet = ActiveWorkbook.ActiveSheet
sheet.Range("D1").ClearContents
sheet.Range("C2", Cells(Rows.Count, Columns.Count)).ClearContents
lastRow = sheet.Range("A" & Rows.Count).End(xlUp).Row
urlPath = InputBox("Please enter url for webscrape")
fileFormat = InputBox("Please select file format. (Ex png, jpg, jpeg)")
If fileFormat <> "png" And fileFormat <> "jpg" And fileFormat <> "jpeg" Then
IE.Quit
Exit Sub
End If
IE.Visible = False
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select a folder"
.ButtonName = "Select"
If .Show = -1 Then
folderName = .SelectedItems(1)
Else
IE.Quit
Exit Sub
End If
End With
'https://surgical-instruments.bbraun.com/search/?text=
'https://mdtrade.at/search?q=C0058409
For i = 2 To lastRow
'ie.Navigate "https://www.skroutz.gr/search?keyphrase=" & sheet.Range("B" & i).Value
'IE.Navigate "https://mdtrade.at/search?q=" & sheet.Range("B" & i).Value
IE.Navigate urlPath & sheet.Range("B" & i).Value
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Set doc = IE.document
On Error Resume Next
'imgUrl = doc.querySelector("a[data-bg]").toString
'imgUrl = doc.querySelector("a[class='product_thumbnail_preview']").getAttribute("src").toString
imgUrl = doc.querySelector("div.productPrevImgThumb > a img").toString
Debug.Print imgUrl
If Err.Number = 91 Then
sheet.Range("C" & i).Value = "Not Found"
Else
imgName = folderName & "\" & sheet.Range("A" & i).Value & "." & fileFormat
dlFunc = URLDownloadToFile(0, imgUrl, imgName, 0, 0)
If dlFunc = 0 Then
sheet.Range("C" & i).Value = "File successfully downloaded"
Else
sheet.Range("C" & i).Value = "Unable to download the file"
End If
End If
Next i
sheet.Range("D1").Value = "Script Complete"
IE.Quit
End Sub
Best regards
Morten
Bookmarks