Script pour copier du texte sur une page web

Résolu

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. 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
    1. 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
      1. Salut et merci pour le retour.

        Je garde pour moi le script ^^

        Bonne journée.


        0
        1. 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
          1. 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. Salut.

              Le problème ? 313 chapitres.

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

              =)

              0
            2. @little boy62

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

              -2
            3. Modérateur

              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
            4. @jordane45

              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
            5. Modérateur
              @little boy62

              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