• User

    Contare le battute di un sito web

    Salve e buongiorno a tutti, chiedo venia se non ho aperto la discussione nel posto giusto...

    Come da titolo, sto cercando di implementare un contatore che mi restituisca il numero dei caratteri (battute) presenti in un sito internet (lato client).

    Praticamente l'utente dovrebbe digitare in una textarea del mio sito l'indirizzo di un qualsiasi sito web, e un ipotetico script dovrebbe scandagliare quell'indirizzo restituendo il numero di caratteri da lui contenuti...

    Semplice eh? :smile5:

    Le mie conoscenze si limitano a php e poco altro, pensavo di caricare in un array ogni pagina, il problema é muoversi tipo uno spider all'interno di un sito...

    Voi che dite? si puo fare?

    Grazie a tutti coloro risponderanno.


  • User

    @Halvard said:

    ...
    Come da titolo, sto cercando di implementare un contatore che mi restituisca il numero dei caratteri (battute) presenti in un sito internet (lato client).

    ...

    il problema é muoversi tipo uno spider all'interno di un sito...

    Non riesco a capire se vuoi il numero di pagine che contiene quel sito o, specificato il link di una singola pagina, vuoi sapere il numero di caratteri (intesi come lettere) che compongono la sorgente.

    Se è la prima allora si: hai bisogno di organizzare uno spider che segua tutti i link presenti in una pagina specificata del sito X

    Viceversa, la seconda la puoi banalmente organizzare recuperando il sorgente con la funzione file_get_contents() e contare i caratteri con la funzione strlen().


  • User

    Ciao,
    mi spiego meglio, io vorrei che: dato l'indirizzo di un sito vengano contati i caratteri di tutte le pagine comprese nel sito. Ho gia implementato un codice php che dato il sito conta i caratteri della homepage. li spoglia anche del codice html con strip_tags().

    Il problema é che conta i caratteri solo della pagina che viene data (se scrivo miosito.com lui conta quelli della index per default).

    Quindi dovrei trovare anche quante pagine ha quel sito, farne un elenco e poi analizzarle una per una con la procedura che ho gia fatto.

    Ma come conto le pagine di un sito senza i link esterni? é questo che mi sfugge...


  • ModSenior

    Ciao Halvard,

    dovresti utilizzare le espressioni regolati per prendere tutti i link, confrontare se sono interni e dopo fare il conteggio di tutte le pagine.
    Il tempo di esecuzione dello script sarà molto elevato, e se il numero di pagine è elevato questo sarà un bel problema.


  • User

    Si, é vero, gia con una pagina ci mette un paio di secondi...
    Tanto per spiegarmi meglio spiego a cosa serve:

    si tratta di un sito che offre traduzioni di siti intrnet, questa applicazione darebbe all'utente la possibilitá di scoprire piu o meno quante battute contiene il suo sito, visto che il prezzo della traduzione va in base alle battute.

    Diciamo che potrei limitare la ricerca a 20 pagine, superate le quali avviso l'utente che i dati da elaborare sono troppi.

    Per il momento provo a implementare una specie di spider... vediamo che salta fuori intanto...

    Grazie a tutti, e se nel frattempo qualcuno ha idee...


  • User

    Mi sono già ritrovato a programmare una simile applicazione anche se per tutt'altri scopi.

    In sostanza, tramite regexp uno spider rintraccia tutti i link interni secondo le modalità descritte da dark ita, questo ha il compito di tracciare una sitemap e salvarlmela.

    Essendo una ricerca molto rapida, in meno di un minuto riesce a scandagliare tranquillamente una cinquantina di pagine, per cui per siti medio-piccoli va ancora bene (altrimenti devi impostare il limite temporale di esecuzione di uno script da php.ini e portarlo a più di 120 secondi).

    Fatto questo, i dati vengono elaborati da un engine in javascript che esegue alcune operazioni matematiche per capire quante pagine sono e in quanti giri di scandagliamento suddividere l'analisi del web site.

    Ottenuto il numero di giri (basato sul fatto di sondare 25 pagine a giro) tramite richiesta asincrona invio le pagine da sondare ad uno script in php che verrà eseguito tot giri volte e che infine eseguirà sulle pagine specificate le operazioni da svolgere. (nel tuo caso il conteggio della battitura).

    Spero di averti dato ispirazione, buona fortuna :ciauz:


  • Super User

    Ciao, in che modo conti i caratteri di ogni pagina?


  • User

    @PaTeR said:

    Ciao, in che modo conti i caratteri di ogni pagina?

    Grazie Blanks, mi hai ispirato eccome! Anche se io non ho le tue conoscenze proveró a fare qualcosa di simile.

    • Per rispondere a Pater, prima salvo la il codice sorgente dell'indirizzo dato dall'utente con file_get_contents, poi cerco di eliminare tutti i tag html e php con strip_tags() (é un po grossolano ma funziona), poi conto i caratteri della stringa rimasta con str len, che poi é la procedura che ha indicato anche Blancks.
      File_get_contents non é sempre esatto ma a me non serve avere un numero "esattissimo" e mi va ancora bene.

    visto che voglio rimanere sul php, cerceró di estrarre tutti i link a pagine che non siano esterne dalla suddetta stringa, ne faro una lista (tipo sitemap) dopodiché esaminero una pagina alla volta e faró la somma dei caratteri.

    Ho pensato anche di cercare "in primis" se nel sito é presente un file sitemap, con quello sarebbe tutto piu facile.

    Nel frattempo, se qualcuno vuole usufruire del codice php lo posso tranquillamente postare, ma vi avviso che io ho studiato programmazione quando andava di moda il Pascal... Chi se lo ricorda?? :wink3:

    grazie ancora a tutti!


  • User

    Date un'occhiata qui, sembra interessante e soprattutto sembra anche funzionare...

    pierpaoloromanelli.com/estrarre-tag-links-immagini-php.html