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 :
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
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
Merci d'avance....
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
Edit:
J'ai trouver comment recuperer les urls des images:
Il me reste plus que trouver comment avoir la valeur node et node2 dans le même row
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
Partager