


Node Puppeteer implémente le partage d'idées de surveillance des connexions sur des sites Web
May 30, 2018 pm 03:24 PMCette fois, je vais partager avec vous des idées pour mettre en œuvre la surveillance des connexions à un site Web avec Node Puppeteer. Quelles sont les précautions pour mettre en œuvre la surveillance des connexions à un site Web avec Node Puppeteer. Voici des cas pratiques, jetons un coup d'œil.
Introduction à Puppeteer
Puppeteer est une bibliothèque de nœuds développée par l'équipe Chrome, qui peut contrôler les comportements du navigateur, tels que les clics et les sauts, via les API Transférer, actualiser, exécuter des scripts js dans la console, etc. Avec cet artefact, il est facile d'écrire un robot d'exploration, de se connecter automatiquement, de prendre des captures d'écran de pages Web, de générer des PDF et d'automatiser les tests.
Un exemple simple de marionnettiste
Le code vient du site officiel :
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch();//打开浏览器 const page = await browser.newPage();//打开一个空白页 await page.goto('https://example.com');//在地址栏输入网址并等待加载 await page.screenshot({path: 'example.png'});//截个图 await browser.close();//关掉浏览器 })();
Lecture du code ci-dessus , on peut constater que 1 , Chaque étape du code est une opération asynchrone, 2. Chaque opération correspond à un comportement réel d'utilisation du navigateur. Comprendre ces deux points est d'une grande aide pour utiliser cette bibliothèque. De plus, les deux objets les plus couramment utilisés sont les objets navigateur et page. Il existe de nombreuses méthodes sur les objets utilisés pour faire fonctionner les deux objets. Ensuite, nous rédigerons une petite démo pour vous connecter au site Web.
Sites Web sans Code de vérification
Pour les sites Web sans code de vérification, entrez essentiellement le numéro de compte et entrez le mot de passe, les trois étapes consistant à cliquer pour se connecter nécessitent l'utilisation de deux méthodes de l'objet page : le type est utilisé pour saisir des informations dans la zone de saisie, et le clic est utilisé pour cliquer pour se connecter. Prenons l'exemple de la connexion à Douban :
const puppeteer = require('puppeteer'); const account = `123456@qq.com`; const password = `123456`; (async () => { const browser = await puppeteer.launch();//打开浏览器 const page = await browser.newPage();//打开一个空白页 await page.goto('https://www.douban.com/');//打开豆瓣网站 await page.type('#form_email', account); await page.type('#form_password', password); await page.click('.bn-submit'); await page.waitForNavigation({ waitUntil: 'load' });//等待页面加载出来,等同于window.onload await page.screenshot({path: 'example.png'});//截个图 await browser.close();//关掉浏览器 })();
Certaines personnes demandent : comment puis-je savoir si la connexion a réussi ? Une façon de déboguer est d'utiliser des captures d'écran si ce que vous voyez est une page de codes de vérification ? , indiquant que la connexion n'a pas réussi, il existe une autre méthode comme la suivante :
const browser = await puppeteer.launch({headless: false});//打开有界面的浏览器
Passer en headless: false ouvrira en fait une interface de navigateur, afin que vous puissiez voir l'exécution du code en temps réel quelque part . Parlons ensuite de ce qu'il faut faire lorsque vous rencontrez un code de vérification.
Sites Web avec codes de vérification
Lorsque vous rencontrez des sites Web avec des codes de vérification, vous pouvez définir headless sur faux, utiliser l'interface pour saisir le code de vérification et surveiller la page en même temps Événement de chargement implémente la connexion. Le code est le suivant :
... await page.waitForNavigation({ waitUntil: 'load' });//等待页面加载出来,等同于window.onload //代码中监听跳转事件 if(page.url() === 'https://www.douban.com/accounts/login'){ //登录不成功 console.log('需要输入验证码'); //等待再一次跳转 while(true){ await page.waitForNavigation({ waitUntil: 'load' }) console.log(page.url()) if(page.url() === 'https://www.douban.com/'){ console.log('登录成功'); break; } } }
L'idée générale est d'écrire une boucle et de surveiller en permanence les sauts de page jusqu'à ce que le navigateur passe à la page d'accueil après une connexion réussie.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
jQuery pour implémenter la zone de texte de la page HTML Requête de correspondance floue (avec code)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment puis-je me connecter à mon ancien compte sur Xiaohongshu ? Que dois-je faire si le numéro d'origine est perdu après sa reconnexion ?

Que dois-je faire si je télécharge les fonds d'écran d'autres personnes après m'être connecté à un autre compte sur WallpaperEngine ?

La solution au problème de connexion en arrière-plan Discuz révélée

Le skin de collection 'Onmyoji' Ibaraki Doji peut être obtenu dès que vous vous connectez, et le nouveau skin Zen Heart Cloud Mirror sera bientôt lancé !

Comment se connecter à la version PC de Kuaishou - Comment se connecter à la version PC de Kuaishou

Essayez cette solution simple en 3 étapes pour résoudre le problème de l'impossibilité de vous connecter à votre compte Microsoft.

115 Entrée de connexion à la version Web de Netdisk

Comment accéder à la version Web de Baidu Netdisk ? Entrée de connexion à la version Web de Baidu Netdisk
