1. ✅ Apprenez une METHODE qui marche pour votre SEO ! Formation à distance avec Olivier Duffez et Fabien Facériès + aide pour prise en charge du financement
    Rejeter la notice

Php CURL : se connecter à Leboncoin

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par sff, 22 Août 2018.

  1. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Bonjour,

    je souhaite récupérer le code html du site Leboncoin afin de le traiter et récuperer ce qui m'interesse.

    Le problème c'est que je n'arrive meme pas à me connecter à Leboncoin. Ce me marque "You have been blocker". J'ai utilisé l'user agent de Google mais cela ne change rien. Avez-vous une astuce ? Merci d'avance

    Voici le code :

    PHP:
    <?php

    $url 
    'https://www.leboncoin.fr';
    $timeout 10;

    $ch curl_init($url);

    curl_setopt($chCURLOPT_FRESH_CONNECTtrue);
    curl_setopt($chCURLOPT_TIMEOUT$timeout);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT$timeout);

    if (
    preg_match('`^https://`i'$url))
    {
    curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
    curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
    }

    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);

    // Définition du header "User-Agent:"
    // Simulation d'un Firefox 3.6.13
    curl_setopt($chCURLOPT_USERAGENT'Googlebot/2.1 (+http://www.google.com/bot.html)');

    $page_content curl_exec($ch);

    curl_close($ch);

    echo 
    $page_content;

    ?>
     
  2. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Teste avec wget ou file_get_contents pour voir si c'est ton IP qui est bloquée.
     
  3. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Avec cela ca me donne :


    ( ! ) Warning: file_get_contents(https://www.leboncoin.fr): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in C:\UwAmp\www\test.php on line 4
     
  4. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Tu as une idée Spout ? car la je sais pas comment faire
     
  5. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Fait encore un essai en changeant le UA de file_get_contents: https://stackoverflow.com/questions/2107759/php-file-get-contents-and-setting-request-headers
    Ne met pas le UA de Google bot mais par exemple Chrome:
    Code:
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
    Si ça marche pas c'est ton IP bloquée ou autre astuce pour empêcher le scrap. Il faut tester en changeant d'IP avec un Proxy/VPN.

    Edit: je viens de tester avec requests (Python):
    Code:
    <!--
    Need permission to access data? Contact: DataAccess@datadome.co
    -->
    <html><head><title>You have been blocked</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style></head><body style="margin:0"><p id="cmsg">Please enable JS and disable any ad blocker</p><script>var dd={'cid':'AHrlqAAAAAMAnSrqgIgbLNwAo6wcEw==','hsh':'05B30BD9055986BD2EE8F5A199D973'}</script><script src="https://ct.datadome.co/c.js"></script></body></html>
    Ils utilisent https://datadome.co/ comme protection.
    Apparemment la protection en JS, donc il faut utiliser Puppeteer / Proxy / VPN ou un plugin / bookmarklet pour ton browser.
     
    #5 spout, 22 Août 2018
    Dernière édition: 22 Août 2018
  6. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Le VPN est obligatoire ou un proxy fera l'affaire ?
     
  7. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Le proxy devrait aller, s'il n'est pas détecté aussi.
     
  8. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Même avec Puppeteer ça marche pas (enfin il faut creuser plus) :

    [​IMG]
     
  9. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    PhantomJS ne serait pas mieux ?
     
  10. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
  11. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
  12. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Puppeteer est en mesure de cliquer sur des élements il me semble. Pourquoi ne pas positionner la souris sur la checkbox du Captcha et ensuite cliquer dessus ? Ca te semble viable comme solution Spout ?
     
  13. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Oui, il faut tester.
     
  14. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Peut-on récupérer le code html d'une page avec Puppeteer ?
     
  15. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
  16. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Je suis en train de tenter d'installer Puppeteer sous Ubuntu 16.04 mais j'ai une erreur d'installation que je n'arrive pas à régler :


    npm WARN saveError ENOENT: no such file or directory, open '/root/puppeteertest/package.json'
    npm notice created a lockfile as package-lock.json. You should commit this file.
    npm WARN enoent ENOENT: no such file or directory, open '/root/puppeteertest/package.json'
    npm WARN puppeteertest No description
    npm WARN puppeteertest No repository field.
    npm WARN puppeteertest No README data
    npm WARN puppeteertest No license field.

    Merci d'avance de votre aide
     
  17. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 057
    J'aime reçus:
    294
    Code:
    npm init
    pour créer le package.json
     
  18. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    merci beaucoup
     
  19. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Encore un problème visiblement :

    (node:4711) UnhandledPromiseRejectionWarning: Error: Failed to launch chrome!
    [0909/181224.284711:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See http s://crbug.com/638180.


    TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md

    at onClose (/root/puppeteertest/node_modules/puppeteer/lib/Launcher.js:333:14)
    at Interface.helper.addEventListener (/root/puppeteertest/node_modules/puppeteer/lib/Launcher.js:322:50)
    at emitNone (events.js:111:20)
    at Interface.emit (events.js:208:7)
    at Interface.close (readline.js:368:8)
    at Socket.onend (readline.js:147:10)
    at emitNone (events.js:111:20)
    at Socket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    (node:4711) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing insi de of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
    (node:4711) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
     
  20. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    La solution :

    remplacer

    const browser = await puppeteer.launch()

    par

    const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']})
     
  21. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    En utilisant toujours Puppeteer, comment puis-je écrire du texte dans un input sans en connaitre son nom ?

    J'ai cliqué avec la souris dessus, mais je ne sais pas comment le remplir. Etant donné que Leboncoin utilise une frame pour ce formulaire on ne connait pas les détails du code source.

    HTML:
    <iframe src="https://c.datadome.co/captcha/?initialCid=AHrlqAAAAAMAgCgqN8wsYEUAuQ0mEg%3D%3D&amp;hash=05B30BD9055986BD2EE8F5A199D973&amp;cid=xPWRn2aSDhK55qhYzwh8N1HGFa1PpS_8R4PHCQifd_" width="100%" height="100%" style="height:10      0vh;" frameborder="0" border="0" scrolling="yes"></iframe>
    
    Merci d'avance
     
  22. sff
    sff WRInaute impliqué
    Inscrit:
    2 Février 2005
    Messages:
    531
    J'aime reçus:
    0
    Avec un peu de recherche :

    page.keyboard.type('mon texte')
     
Chargement...
Similar Threads - Php CURL connecter Forum Date
Problème de modication du code html d'un site en CURL et DOM PHP Développement d'un site Web ou d'une appli mobile 11 Avril 2014
Snapshot website avec php CURL Développement d'un site Web ou d'une appli mobile 28 Mars 2010
réécrire /categorie.php?id=xxx en /categorie/id URL Rewriting et .htaccess Dimanche à 12:41
Rediriger Index.php vers racine URL Rewriting et .htaccess 15 Août 2020
Galère pour supprimer index.php URL Rewriting et .htaccess 12 Août 2020
PHP Redis : Comment indexer les clés ? Développement d'un site Web ou d'une appli mobile 1 Août 2020
PHP session perso : session_start() en erreur. Développement d'un site Web ou d'une appli mobile 27 Juillet 2020
Quelle doc sur PHPRedis ? Développement d'un site Web ou d'une appli mobile 24 Juillet 2020
Memcached/PHP gestion de sessions Développement d'un site Web ou d'une appli mobile 22 Juillet 2020
PHP empêcher form onsubmit si formulaire invalide Développement d'un site Web ou d'une appli mobile 29 Juin 2020