Bonjour,

Je fais des test pour récupérer des données depuis divers pages web.
J'ai un simple form avec un bouton, un datagridview.

En cliquant sur se bouton il récupère des valeurs depuis une page web.
J'ai déjà un problème avec le datagridview. Surement du que j'ai 2 for each (node et node2)
Donc les valeurs s'ajoute en dessous et non cote-a-cote.

Puis viens la partie de récupérer le liens de l'image, celle-ci n'apparait pas même si avec l'extension xpath helper sous chrome je suis logiquement bon.
Je met le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Imports System
Imports HtmlAgilityPack
Imports System.Collections.Generic
Imports System.Net
Imports System.IO
Public Class scrap2
    Private Sub scrap2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
 
    End Sub
 
 
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 
 
        DataGridView1.ColumnCount = 2
        DataGridView1.Columns(0).Name = "Products"
        DataGridView1.Columns(1).Name = "Links"
 
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
        Dim link As String = "https://www.hobbydb.com/marketplaces/hobbydb/catalog_items?utf8=%E2%9C%93&q=thanos+sideshow&commit=Go"
        Dim doc As HtmlDocument = New HtmlWeb().Load(link)
        Dim div As HtmlNode = doc.DocumentNode.SelectSingleNode("//div[@class='marketplace-collectible-list']")
 
        For Each node As HtmlNode In div.SelectNodes(".//a[@class ='catalog-item-name']")
            DataGridView1.Rows.Add(node.InnerText.Trim(), node.InnerText.Trim())
        Next
 
        For Each node2 As HtmlNode In div.SelectNodes(".//div[@class = 'image-container']//img//@src")
            DataGridView1.Rows.Add(node2.InnerText.Trim())
        Next
 
    End Sub
End Class
Pour avoir le les deux valeurs je n'arrive pas a trouver comment faire pour avoir les 2 dans le même row, du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
For Each node As HtmlNode In div.SelectNodes(".//a[@class ='catalog-item-name']") and node2 As HtmlNode In div.SelectNodes(".//div[@class = 'image-container']//img//@src")
            DataGridView1.Rows.Add(node.InnerText.Trim(),node2.InnerText.Trim())
        Next
Merci d'avance....

Edit:
J'ai trouver comment recuperer les urls des images:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
        For Each node2 As HtmlNode In div.SelectNodes("//div[@class='marketplace-collectible-list']//div[@class = 'image-container']//img//@src")
            DataGridView1.Rows.Add(node2.Attributes("src").Value)
        Next
Il me reste plus que trouver comment avoir la valeur node et node2 dans le même row