Récupérer du texte sur un site WEB
PIJULOUJO
-
Pierrecastor Messages postés 41491 Date d'inscription Statut Modérateur Dernière intervention -
Pierrecastor Messages postés 41491 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Voici mon projet :
- développer un outil permettant de rédiger les contrats de façon automatique.
Pour cela, j'ai besoin de me connecter au site societe.com puis de récupérer certaines informations, à savoir :
- la forme juridique
- le nom commercial de l'entreprise
- l'adresse postale
- le numéro de SIRET
- le numéro de TVA intracommunautaire
- le numéro RCS
- le capital social
Dans mon outil Excel je possède déjà le numéro de SIRET par un autre biais. Je me connecte alors sur la page societec.com correspondant au SIRET recherché mais ensuite j'aurais besoin de récupérer les autres informations listées ci dessus.
Voici mon code pour récupérer par exemple la forme juridique :
Sub IETest5()
Dim ie As New InternetExplorer
ie.Visible = True
ie.navigate "https://www.societe.com/societe/" & Range("E20").Value & "-" & Range("AK2").Value & ".html"
Do While ie.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Dim HTMLDoc As HTMLDocument
Set HTMLDoc = ie.document
StatutJuridique = document.getElementById("catjur-histo-description")
MsgBox StatutJuridique
End Sub
POurriez vous m'aider ?
D'avance merci !
Voici mon projet :
- développer un outil permettant de rédiger les contrats de façon automatique.
Pour cela, j'ai besoin de me connecter au site societe.com puis de récupérer certaines informations, à savoir :
- la forme juridique
- le nom commercial de l'entreprise
- l'adresse postale
- le numéro de SIRET
- le numéro de TVA intracommunautaire
- le numéro RCS
- le capital social
Dans mon outil Excel je possède déjà le numéro de SIRET par un autre biais. Je me connecte alors sur la page societec.com correspondant au SIRET recherché mais ensuite j'aurais besoin de récupérer les autres informations listées ci dessus.
Voici mon code pour récupérer par exemple la forme juridique :
Sub IETest5()
Dim ie As New InternetExplorer
ie.Visible = True
ie.navigate "https://www.societe.com/societe/" & Range("E20").Value & "-" & Range("AK2").Value & ".html"
Do While ie.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Dim HTMLDoc As HTMLDocument
Set HTMLDoc = ie.document
StatutJuridique = document.getElementById("catjur-histo-description")
MsgBox StatutJuridique
End Sub
POurriez vous m'aider ?
D'avance merci !
A voir également:
- Récupérer du texte sur un site WEB
- Site comme coco - Accueil - Réseaux sociaux
- Site de telechargement - Accueil - Outils
- Création site web - Guide
- Web office - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
4 réponses
Salut,
Pour ce genre de chose, il faut passer par l'API officiel :
https://www.societe.com/produits/flux-xml.html
Ça sera payant, mais au moins, vous ne contreviendrez pas aux conditions d'utilisation et ne risquerez pas d'attaque en justice.
Pour ce genre de chose, il faut passer par l'API officiel :
https://www.societe.com/produits/flux-xml.html
Ça sera payant, mais au moins, vous ne contreviendrez pas aux conditions d'utilisation et ne risquerez pas d'attaque en justice.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, ton code fonctionne bien?
Bonjour PIJULOUJO
Pour votre information, il est indiqué ceci dans les CGU de societe.Com :
Conditions de rediffusion ou d'extraction
Les données contenues sur le site www.societe.com sont protégées par la loi du 1er juillet 1998 sur les bases de données.
En accédant ou en utilisant le site, vous reconnaissez vous conformer aux dispositions de la loi, et notamment en vous interdisant l'extraction, le transfert, le stockage, la reproduction de tout ou partie qualitativement ou quantativement substantielle du contenu des bases de données figurant sur le site.
La reproduction, la rediffusion ou l'extraction automatique par tout moyen d'informations figurant sur societe.com est interdite. L'emploi de robots, programmes permettant l'extraction directe de données est rigoureusement interdit.
SOCIETE SAS se réserve le droit d'entamer toute action visant à faire cesser le préjudice.
SOCIETE SAS propose un service de vente de données en format fichier ou via son API Pro
Pour votre information, il est indiqué ceci dans les CGU de societe.Com :
Conditions de rediffusion ou d'extraction
Les données contenues sur le site www.societe.com sont protégées par la loi du 1er juillet 1998 sur les bases de données.
En accédant ou en utilisant le site, vous reconnaissez vous conformer aux dispositions de la loi, et notamment en vous interdisant l'extraction, le transfert, le stockage, la reproduction de tout ou partie qualitativement ou quantativement substantielle du contenu des bases de données figurant sur le site.
La reproduction, la rediffusion ou l'extraction automatique par tout moyen d'informations figurant sur societe.com est interdite. L'emploi de robots, programmes permettant l'extraction directe de données est rigoureusement interdit.
SOCIETE SAS se réserve le droit d'entamer toute action visant à faire cesser le préjudice.
SOCIETE SAS propose un service de vente de données en format fichier ou via son API Pro
Bonjour,
Merci pour vos réponses !
En fait, je n'ai pas expliquer jusqu'au bout ce qui ne fonctionne pas avec mon code comme l'indique yg_be... En réalité, je n'arrive pas à remonter les informations avec ce que j'ai écris... mais peut être est ce du au fait que ces données soient protégées comme le précise NonoM45...
Pour être parfaitement clair, hier j'ai de nouveau essayé de retravailler mon code :
Sub VBA_Webscrap()
'to refer to the running copy of Internet Explorer
Dim ie As InternetExplorer
'to refer to the HTML document returned
Dim IEdoc As IHTMLElement
Dim resultat As Range
Set resultat = Worksheets("Menu").Range("AZ1")
'open Internet Explorer in memory, and go to website
Set ie = New InternetExplorer
ie.Visible = True
ie.navigate "https://www.societe.com/societe/" & Range("E20").Value & "-" & Range("AK2").Value & ".html"
WaitIE ie
Set IEdoc = ie.html => ligne à l'origine de l'erreur
'get a reference to the article’s header. The text is stored in the first item within the element.
resultat = IEdoc.getElementsByClassName("catjur-histo-description").innerText
MsgBox resultat
Set resultat = Nothing
Set html = Nothing
End Sub
=> mais j'obtiens le message d'erreur "Erreur 438 - Propriété ou méthode non gérée"
j'ai ensuite essayé le code suivant :
Sub TEST6()
'to refer to the running copy of Internet Explorer
Dim ie As New InternetExplorer
'to refer to the HTML document returned
Dim IEdoc As HTMLDocument
'open Internet Explorer in memory, and go to website
ie.navigate "https://www.societe.com/societe/" & Range("E20").Value & "-" & Range("AK2").Value & ".html"
ie.Visible = True
'use the below set of Do's together to wait for the website to do work
Do Until ie.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set IEdoc = ie.document
'get a reference to the article’s header. The text is stored in the first item within the element.
document.getElementsByClassName ("break-word") => ligne à l'origine de l'erreur
ActiveSheet.Range(“AZ1”) = firstHeaderElement.innerHTML
Set html = Nothing
End Sub
=> mais j'obtiens le message d'erreur "Erreur d'exécution 424 - Objet requis"
Y a t il réellement une solution ou est ce impossible de part la protection des données ?
D'avance merci !
Merci pour vos réponses !
En fait, je n'ai pas expliquer jusqu'au bout ce qui ne fonctionne pas avec mon code comme l'indique yg_be... En réalité, je n'arrive pas à remonter les informations avec ce que j'ai écris... mais peut être est ce du au fait que ces données soient protégées comme le précise NonoM45...
Pour être parfaitement clair, hier j'ai de nouveau essayé de retravailler mon code :
Sub VBA_Webscrap()
'to refer to the running copy of Internet Explorer
Dim ie As InternetExplorer
'to refer to the HTML document returned
Dim IEdoc As IHTMLElement
Dim resultat As Range
Set resultat = Worksheets("Menu").Range("AZ1")
'open Internet Explorer in memory, and go to website
Set ie = New InternetExplorer
ie.Visible = True
ie.navigate "https://www.societe.com/societe/" & Range("E20").Value & "-" & Range("AK2").Value & ".html"
WaitIE ie
Set IEdoc = ie.html => ligne à l'origine de l'erreur
'get a reference to the article’s header. The text is stored in the first item within the element.
resultat = IEdoc.getElementsByClassName("catjur-histo-description").innerText
MsgBox resultat
Set resultat = Nothing
Set html = Nothing
End Sub
=> mais j'obtiens le message d'erreur "Erreur 438 - Propriété ou méthode non gérée"
j'ai ensuite essayé le code suivant :
Sub TEST6()
'to refer to the running copy of Internet Explorer
Dim ie As New InternetExplorer
'to refer to the HTML document returned
Dim IEdoc As HTMLDocument
'open Internet Explorer in memory, and go to website
ie.navigate "https://www.societe.com/societe/" & Range("E20").Value & "-" & Range("AK2").Value & ".html"
ie.Visible = True
'use the below set of Do's together to wait for the website to do work
Do Until ie.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set IEdoc = ie.document
'get a reference to the article’s header. The text is stored in the first item within the element.
document.getElementsByClassName ("break-word") => ligne à l'origine de l'erreur
ActiveSheet.Range(“AZ1”) = firstHeaderElement.innerHTML
Set html = Nothing
End Sub
=> mais j'obtiens le message d'erreur "Erreur d'exécution 424 - Objet requis"
Y a t il réellement une solution ou est ce impossible de part la protection des données ?
D'avance merci !
Chacun de ces messages d'erreu s'applique à une ligne de code.
Tu ne nous informes pas de la ligne concernée.
As-tu bien
Pour rendre ton code plus lisible sur le forum, merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Le VBA, c'est du "basic".
Tu ne nous informes pas de la ligne concernée.
As-tu bien
option expliciten début de module?
Pour rendre ton code plus lisible sur le forum, merci d'utiliser les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Le VBA, c'est du "basic".