Bonjour,

Nous avons plusieurs sites. je cherche un outil, un script afin de d'avoir la liste des liens qui pointent sur un site à partir de nos sites.

En gros on a les sites toto.com, tata.com et tutu.com. Je veux la liste des pages qui ont un lien vers zorro.com

Merci

2 réponses


Laurent Popol
Auteur
Réponse acceptée

Bonjour,

Oui c'est au début ce que je pensais faire mais étant donné qu'il y a plusieurs sites ça prenait un temps fou.

J'ai donc fais un script en Symfony qui le fait le job qui permet de gérer les niveaux ainsi que les sites à "sniffer".

Pour info voici le script; cela pourra peut-être servir à quelqu'un. c'est vraiment un truc basique. :

    private function crawlUrl(string $url, string $targetDomain, int $depth, array &$externalLinks): void
    {
        if ($depth === 0) return;

        try {
            $response = $this->client->request('GET', $url);
        } catch (GuzzleException $e) {
            return;
        }
        $content = $response->getBody()->getContents();

        $crawler = new Crawler($content, $url);
        $links = $crawler->filter('a')->links();
        $externalLinks[$url] = [];

        foreach ($links as $link) {
            $href = $link->getUri();

            if (str_contains($href, $targetDomain) && !in_array($href, $externalLinks[$url]))
                $externalLinks[$url][] = $href;

            if (str_starts_with($href, $url))
                $this->crawlUrl($href, $targetDomain, $depth - 1, $externalLinks);
        }
    }

tu as des outils existant qui permettent de "sniffer" un site internet, une fois fait, il te faudra chercher dans les pages, ou creer ton propre "sniffer" qui log directement la ou il a trouvé zorro.com