web-dev-qa-db-fra.com

cookies et useragent ne suffisent pas? émuler un navigateur?

Je construis un peu un moteur de recherche pour les boutiques en ligne, et plusieurs sites Web me bloquent bien que je vérifie le fichier robots.txt

Prenons un exemple, il me faut cette page:

http://www.aliexpress.com/item/1pcs-Easy-use-Pet-Animal-Dog-Grooming-Nail-Clippers-Scissors-Trimmer-wholesale-Newest/1339057466.html?spm=2114.10010108.0.64.MGPpDO

Selon http://www.aliexpress.com/robots.txt:

# file: robots.txt,v 1.0 2002/09/23 created by Tsing Kong
# www.alibaba.com
# <URL:http://www.robotstxt.org/wc/exclusion.html#robotstxt>
# Format is:
#       User-agent: <name of spider>
#       Disallow: <nothing> | <path>
# -----------------------------------------------------------------------------
User-agent: *
Disallow: /search/
Disallow: /productdetail/

User-agent: Baiduspider
Disallow: /promotion/
Disallow: /wholesale?

User-agent: baiduspider
Disallow: /promotion/

l'URL de la page Web précédente est autorisée et je peux définir n'importe quel agent d'utilisateur. Mais ça ne marche pas.

Aussi, j'ai essayé ce qui suit mais sans chance:

  1. J'ai défini un agent utilisateur pour Chrome:

    curl_setopt ( $curl, CURLOPT_USERAGENT,
        'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
    );
    
  2. définir des cookies:

    curl_setopt ( $curl, CURLOPT_HTTPHEADER, array (
        Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2ALi_apach
    ) );
    

    De plus, j'enregistre les cookies de la demande dans la base de données pour les renvoyer avec la demande suivante.

  3. J'ai changé l'adresse IP plusieurs fois. J'utilise Amazon ec2 (elasticbeanstalk) pour le faire.

Qu'est-ce que je fais mal ?

2
adam kaplan

Voici un début:

  • Les sites Web n'aiment pas être spidered et avoir leurs ressources gaspillées.
  • Vous utilisez Amazon qui a une réputation absolument terrible pour ses activités abusives.
  • Vous imitez un navigateur et êtes malhonnête sur qui vous êtes.
  • Vous êtes clairement un bot et ne fournissez pas un nom d'agent pour bloquer l'accès via une URL d'information contenue dans l'ID de l'agent.
  • Vous pouvez accéder au site de manière excessive.
  • Vous supposez que vous avez le droit d'accéder au site et non pas que vous devez vous comporter correctement.

Attendez-vous à être bloqué.

1
closetnoc