Script pour copier du texte sur une page web

Résolu
gojogojo_hiss Messages postés 1 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour, j'aimerais savoir comment faire pour copier le texte sur cette page ici --> "https://pandamtl.com/how-to-ruin-a-love-comedy-0/" je voudrais que ça commence à copier le texte à partir du texte en gras<h2> jusqu'en bas de la page juste au-dessus du logo "Buy me a coffee", je voudrais le faire pour pouvoir le ligne hors ligne, car la où je travaille il n'y a pas d'internet

J'ai essayé différents scripts qui ne fonctionnent pas, le seul qui fonctionne est celui ci-dessous, mais le seul problème est qu'il copie tout le texte sur toute la page ce qui est très ennuyeux, avez, vous une solution, pour juste copier se que je désire

J'utilise AutoHotKey pour lancer le script.

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

current_page := 0 ; Initialise le numéro de la page à 0

; Ouvre une nouvelle fenêtre de navigateur et accède à la page web
Run, chrome.exe https://pandamtl.com/how-to-ruin-a-love-comedy-0/
Sleep 3000 ; Attendre le temps de chargement de la page

Loop, 2 ; Boucler 2 fois pour passer aux 2 premières pages suivantes
{
  current_page := current_page + 1 ; Incrémenter le numéro de la page

  ; Copier le texte depuis la page web
  Send, ^a^c
  ClipWait, 2

  ; Coller le texte dans un fichier texte (bloc-notes) différent pour chaque page
  file_path := "C:\Users\Byzz\Desktop\fi" . current_page . ".txt"
  FileAppend, %Clipboard%, %file_path%

  ; Passer à la page suivante
  Send, {Right}
  Sleep 2000 ; Attendre 2 secondes avant de passer à la page suivante
}


Windows / Chrome 111.0.0.0

7 réponses

  1. scriptiz Messages postés 1494 Statut Membre 425
     

    Le plus simple sinon c'est d'installer une extension du style :
    - https://chrome.google.com/webstore/detail/allow-right-click/hnafhkjheookmokbkpnfpmemlppjdgoi/related

    Ensuite, lorsque tu visites le site, clique sur l'icône de l'extension pour restaurer la sélection, la copie et le clic droit.

    Tu pourras alors sélectionner le texte que tu veux copier, et le copier dans un document texte (par exemple).

    Sinon si tu veux sauvergarder des sites pour les consulters hors ligne, je te conseille une application du style WebCopy, SiteSucker, ou ArchiveBox.


    0
  2. little boy62 Messages postés 4393 Date d'inscription   Statut Membre Dernière intervention   1 790
     

    Salut.

    En AutoIT, c'est faisaible, facilement. En autohotkey aussi, par principe.

    Même principe qu'énoncé par jordane45 : la lecture du code source de la page.

    Pas besoin de faire un sleep, ni de lancer un navigateur. (EDIT : Ah si ^^)

    Tu dis ceci : 

    je voudrais que ça commence à copier le texte à partir du texte en gras<h2> jusqu'en bas de la page juste au-dessus du logo "Buy me a coffee"

    1. Tu copies le code source de la page, que tu déclares dans une variable.

    2. Ne pas oublier que c'est du html : il est fort probablement que la ligne contenant ce que tu recherches, possèdes une balise qui n'existe pas ailleurs. Il faut donc s'en servir justement pour récupérer la (ou les) ligne(s). 

    -------------------

    EDIT : 

    En recherchant <h2> : la première ligne, c'est le nom du chapitre. Tu déclares dans une boucle; une fois le premier résultat trouvé, tu quittes la boucle, pour ne récupérer uniquement ce que tu voulais.

    En recherchant <p> : tu as l'histoire complète, ligne par ligne. A toi de les récupérer ^^

    Avec ceci, tu peux donc créer un fichier texte et voilà

    ++


    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. little boy62 Messages postés 4393 Date d'inscription   Statut Membre Dernière intervention   1 790
     

    Salut et merci pour le retour.

    Je garde pour moi le script ^^

    Bonne journée.


    0
  5. little boy62 Messages postés 4393 Date d'inscription   Statut Membre Dernière intervention   1 790
     

    Yo.

    Voici le script en question (En AutoIt).

    #include <IE.au3>
    #include <MsgBoxConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Form1", 600, 600, 192, 124)
    GUISetFont(9, 500, 0, "comic sans ms")
    
    GUICtrlCreateLabel("Chapitre", 5, 7.5, 60, 20)
    $cChap = GUICtrlCreateCombo("", 70, 5, 500, 20)
    $sauvegarder_chap_sel = GUICtrlCreateButton("Récupérer le chapitre sélectionné", 5, 40, 250, 25)
    
    $edit = GUICtrlCreateEdit("", 0, 70, 600, 600)
    
    
    ListingChap()
    
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    		Case $sauvegarder_chap_sel
    
    			$url_chap_sel = GUICtrlRead($cChap)
    
    			If $url_chap_sel <> "" Then
    
    				GUICtrlSetData($edit, "")
    
    				Recup_Chap_Sel($url_chap_sel)
    
    
    
    			EndIf
    
    	EndSwitch
    WEnd
    
    
    
    ;~ $url = "https://www.fortuneeternal.com/novel/how-to-ruin-a-love-comedy-mtl/chapter-0/"
    ;~ $fichier = @DesktopDir & "\how to ruin a love melody.txt"
    
    ;~ $cs = BinaryToString(InetRead($url),1)
    ;~ MsgBox(0,"",$cs)
    
    
    
    
    Func ListingChap()
    	For $a = 0 To 313
    		$url = "https://www.fortuneeternal.com/novel/how-to-ruin-a-love-comedy-mtl/chapter-" & $a & "/"
    		GUICtrlSetData($cChap, $url)
    	Next
    EndFunc   ;==>ListingChap
    
    Func Recup_Chap_Sel($url)
    
    	$ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/118.0.2088.88"
    	$contenu = ""
    
    	$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    	$oHTTP.Open("GET", $url, False) ; Open a GET request to a web page
    	$oHTTP.SetRequestHeader("User-Agent", $ua)
    	$oHTTP.SetRequestHeader("Accept", "image/jpeg, application/x-ms-application, image/gif, image/png, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*")
    	$oHTTP.Send()
    	If $oHTTP.Status = 200 Then
    
    
    		$cs = $oHTTP.ResponseText ; Get the response text of the web page
    ;~ 						MsgBox(0,"",$cs)
    ;~ 		ClipPut($cs)
    		$cs = StringReplace($cs, "…", "…")
    		$cs = StringReplace($cs, "–", "–")
    		$cs = StringReplace($cs, "—", "—")
    		$cs = StringReplace($cs, "‘", "‘")
    		$cs = StringReplace($cs, "’", "’")
    		$cs = StringReplace($cs, "“", "“")
    		$cs = StringReplace($cs, "”", "”")
    		$cs = StringReplace($cs, "•", "•")
    		$cs = StringReplace($cs, "&", "&")
    		$cs = StringReplace($cs, "<", "<")
    		$cs = StringReplace($cs, ">", ">")
    
    		$cs = StringReplace($cs, '<p>', @CRLF & '<p>')
    		$cs = StringReplace($cs, '</p>', '</p>' & @CRLF & @CRLF)
    
    ;~ ClipPut($cs)
    ;~ MsgBox(0,"",$cs)
    
    		For $a = 1 To StringSplit($cs, @LF)[0]
    
    			$ligne = StringSplit($cs, @LF)[$a]
    			$ligne = StringStripWS($ligne, 3)
    
    			If StringLeft($ligne, 3) = "<p>" And StringRight($ligne, 4) = "</p>" Then
    
    ;~ MsgBox(0,"",$ligne)
    
    				$ligne = StringReplace($ligne, "<p>", "")
    				$ligne = StringReplace($ligne, "</p>", @CRLF)
    
    				$contenu &= $ligne & @CRLF
    
    			EndIf
    		Next
    
    	EndIf
    
    	If $contenu <> "" Then
    
    		$segments = StringSplit($url, "/") ; divise l'URL en segments séparés par "/"
    		$chapitre = $segments[$segments[0] - 1]
    ;~ 		MsgBox(0, $chapitre, $contenu)
    		GUICtrlSetData($edit, $contenu)
    
    
    	EndIf
    
    
    
    EndFunc   ;==>Recup_Chap_Sel
    

    ++


    0
  6. mariam-j Messages postés 1656 Date d'inscription   Statut Membre Dernière intervention   39
     

    Bonjour,

    Avec Firefox, si je fait: "Enregistrer sous",  le navigateur.affiche la page telle que sur le site, avec le dossier associé qui contient tout le reste (CSS, JS, icon,...ect...)

    Where is the problem ?

    -1
    1. little boy62 Messages postés 4393 Date d'inscription   Statut Membre Dernière intervention   1 790
       

      Salut.

      Le problème ? 313 chapitres.

      Si la personne compte le faire pour tous les chapitres, ça va être hardcore ^^

      =)

      0
      1. mariam-j Messages postés 1656 Date d'inscription   Statut Membre Dernière intervention   39 > little boy62 Messages postés 4393 Date d'inscription   Statut Membre Dernière intervention  
         

        Alors: "Super Macro" avec des pauses, un clic et on laisse mouliner.

        -2
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      Bonjour mariam-j ,

      Les réponses ont déjà été données en septembre ...  pourquoi déterrer ce sujet pour, en plus, n'apporter aucune réponse utile ?

      0
      1. little boy62 Messages postés 4393 Date d'inscription   Statut Membre Dernière intervention   1 790 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         

        Lu'

        Faut dire, à juste titre, que je suis le premier à l'avoir déterré. Sorry, my bad.

        Vu que tu es modérateur, que penses tu de ceci ?

        -> Je fournis le script que j'ai fait

        -> On ferme le topic.

        Comme ça :

        - si une personne cherche à faire pareil, c'est-à-dire, récupérer du texte, elle pourra adapter le script

        - et on polluera plus ce sujet ^^

        ++

        0
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > little boy62 Messages postés 4393 Date d'inscription   Statut Membre Dernière intervention  
         

        Pour ma part, tu as moins déterré vu que tu avais commencé à répondre dès le mois de septembre avec des informations utiles.

        Contrairement à mariam-j  qui n'a rien apporté  de technique ni d'utile à la discussion

        Je pense que le demandeur ( aux abonnés absents depuis qu'on a commencé à lui répondre .. ) sera content de trouver ton script si il n'a pas déjà réussi à le faire en se servant du lien que je lui ai donné.

        Et oui, je vais marquer cette discussion en résolue.

        0