Comment implémenter la fonction d'exploration d'index Baidu
Cette fois, je vais vous montrer comment implémenter la fonction Baidu index crawler et quelles sont les précautions pour implémenter la fonction Baidu index crawler. Voici des cas pratiques, jetons un coup d'oeil.
J'ai déjà lu un article imaginatif qui présentait les techniques anti-exploration frontales de divers grands fabricants, mais comme le dit cet article, il n'existe pas de méthode anti-exploration à 100 %. Cet article présente une méthode simple pour contourner toutes ces façades. -mettre fin aux mesures anti-crawler.
Le code suivant prend Baidu Index comme exemple. Le code a été intégré dans une bibliothèque de nœuds d'exploration Baidu Index : https://github.com/Coffcer/baidu-index-spider
Remarque : Veuillez ne pas abuser des robots d'exploration pour causer des problèmes aux autres
Stratégie anti-crawler de Baidu Index
Observez l'interface de Baidu Index. Les données de l'index sont un graphique de tendance Lorsque la souris passe sur un certain jour, deux requêtes seront déclenchées et les résultats seront affichés dans la boîte flottante
. On peut constater que Baidu Index a en fait mis en œuvre certaines stratégies anti-crawler sur le front-end. Lorsque la souris se déplace sur le graphique, deux requêtes seront déclenchées, une requête renvoie un morceau de code HTML et une requête renvoie une image générée. Le code HTML ne contient pas de valeurs réelles, mais définit la largeur et la marge-gauche pour afficher les caractères correspondants sur l'image. De plus, le paramètre de requête contient des paramètres tels que res et res1 que nous ne savons pas comment simuler, il est donc difficile d'explorer les données de l'index Baidu à l'aide de requêtes simulées conventionnelles ou de méthodes d'exploration HTML.
Idée Reptile
Comment percer la méthode anti-crawler de Baidu est en fait très simple, ne vous souciez pas de la façon dont elle est anti-crawler. Il nous suffit de simuler les opérations de l'utilisateur, de capturer les valeurs requises et d'effectuer une reconnaissance d'image. Les étapes sont en gros :
Simuler la connexion
Ouvrez la page d'index
Déplacez la souris sur la date spécifiée
Attendez la fin de la requête et capturez la partie numérique de l'image
La reconnaissance d'image prend de la valeur
Parcourez les étapes 3 à 5 pour obtenir la valeur correspondant à chaque date
Cette méthode peut théoriquement explorer le contenu de n'importe quel site Web. Ensuite, nous implémenterons le robot étape par étape. Les bibliothèques suivantes seront utilisées :
. Marionnette Simuler le fonctionnement du navigateur
node-tesseract Un package de tesseract, utilisé pour la reconnaissance d'images
jimp Recadrage d'image
Installez Puppeteer et simulez les opérations des utilisateurs
Puppeteer est un outil d'automatisation Chrome produit par l'équipe Google Chrome, utilisé pour contrôler les commandes d'exécution de Chrome. Vous pouvez simuler les opérations des utilisateurs, effectuer des tests automatisés, des robots d'exploration, etc. L'utilisation est très simple. Il existe de nombreux tutoriels d'introduction sur Internet. Vous saurez probablement comment l'utiliser après avoir lu cet article.
Documentation API : https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md
Installation :
npm install --save puppeteer
Puppeteer télécharge automatiquement Chromium lors de l'installation pour garantir son bon fonctionnement. Cependant, les réseaux nationaux peuvent ne pas réussir à télécharger Chromium. Si le téléchargement échoue, vous pouvez utiliser cnpm pour l'installer, ou modifier l'adresse de téléchargement sur le miroir Taobao, puis l'installer à nouveau :
npm config set PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors npm install --save puppeteer
// npm npm install --save puppeteer --ignore-scripts // node puppeteer.launch({ executablePath: '/path/to/Chrome' });
Réussite
Pour garder la mise en page soignée, seules les parties principales sont répertoriées ci-dessous. Les parties du code impliquant le sélecteur sont remplacées par.... Pour le code complet, veuillez vous référer au référentiel github en haut de l'article.Ouvrez la page Baidu Index et simulez la connexion
Ce qui est fait ici, c'est simuler les opérations de l'utilisateur, cliquer et saisir étape par étape. Il n'y a pas de gestion ducode de vérification de connexion. La gestion du code de vérification est un autre sujet. Si vous vous êtes connecté à Baidu localement, vous n'avez généralement pas besoin d'un code de vérification.
// 启动浏览器, // headless参数如果设置为true,Puppeteer将在后台操作你Chromium,换言之你将看不到浏览器的操作过程 // 设为false则相反,会在你电脑上打开浏览器,显示浏览器每一操作。 const browser = await puppeteer.launch({headless:false}); const page = await browser.newPage(); // 打开百度指数 await page.goto(BAIDU_INDEX_URL); // 模拟登陆 await page.click('...'); await page.waitForSelecto('...'); // 输入百度账号密码然后登录 await page.type('...','username'); await page.type('...','password'); await page.click('...'); await page.waitForNavigation(); console.log(':white_check_mark: 登录成功');
Simulez le déplacement de la souris et obtenez les données requises
需要将页面滚动到趋势图的区域,然后移动鼠标到某个日期上,等待请求结束,tooltip显示数值,再截图保存图片。
// 获取chart第一天的坐标 const position = await page.evaluate(() => { const $image = document.querySelector('...'); const $area = document.querySelector('...'); const areaRect = $area.getBoundingClientRect(); const imageRect = $image.getBoundingClientRect(); // 滚动到图表可视化区域 window.scrollBy(0, areaRect.top); return { x: imageRect.x, y: 200 }; }); // 移动鼠标,触发tooltip await page.mouse.move(position.x, position.y); await page.waitForSelector('...'); // 获取tooltip信息 const tooltipInfo = await page.evaluate(() => { const $tooltip = document.querySelector('...'); const $title = $tooltip.querySelector('...'); const $value = $tooltip.querySelector('...'); const valueRect = $value.getBoundingClientRect(); const padding = 5; return { title: $title.textContent.split(' ')[0], x: valueRect.x - padding, y: valueRect.y, width: valueRect.width + padding * 2, height: valueRect.height } });
截图
计算数值的坐标,截图并用jimp对裁剪图片。
await page.screenshot({ path: imgPath }); // 对图片进行裁剪,只保留数字部分 const img = await jimp.read(imgPath); await img.crop(tooltipInfo.x, tooltipInfo.y, tooltipInfo.width, tooltipInfo.height); // 将图片放大一些,识别准确率会有提升 await img.scale(5); await img.write(imgPath);
图像识别
这里我们用Tesseract来做图像识别,Tesseracts是Google开源的一款OCR工具,用来识别图片中的文字,并且可以通过训练提高准确率。github上已经有一个简单的node封装: node-tesseract ,需要你先安装Tesseract并设置到环境变量。
Tesseract.process(imgPath, (err, val) => { if (err || val == null) { console.error(':x: 识别失败:' + imgPath); return; } console.log(val);
实际上未经训练的Tesseracts识别起来会有少数几个错误,比如把9开头的数字识别成`3,这里需要通过训练去提升Tesseracts的准确率,如果识别过程出现的问题都是一样的,也可以简单通过正则去修复这些问题。
封装
实现了以上几点后,只需组合起来就可以封装成一个百度指数爬虫node库。当然还有许多优化的方法,比如批量爬取,指定天数爬取等,只要在这个基础上实现都不难了。
const recognition = require('./src/recognition'); const Spider = require('./src/spider'); module.exports = { async run (word, options, puppeteerOptions = { headless: true }) { const spider = new Spider({ imgDir, ...options }, puppeteerOptions); // 抓取数据 await spider.run(word); // 读取抓取到的截图,做图像识别 const wordDir = path.resolve(imgDir, word); const imgNames = fs.readdirSync(wordDir); const result = []; imgNames = imgNames.filter(item => path.extname(item) === '.png'); for (let i = 0; i < imgNames.length; i++) { const imgPath = path.resolve(wordDir, imgNames[i]); const val = await recognition.run(imgPath); result.push(val); } return result; } }
反爬虫
最后,如何抵挡这种爬虫呢,个人认为通过判断鼠标移动轨迹可能是一种方法。当然前端没有100%的反爬虫手段,我们能做的只是给爬虫增加一点难度。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

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)

Rédacteur en chef du Machine Power Report : Wu Xin La version domestique de l'équipe robot humanoïde + grand modèle a accompli pour la première fois la tâche d'exploitation de matériaux flexibles complexes tels que le pliage de vêtements. Avec le dévoilement de Figure01, qui intègre le grand modèle multimodal d'OpenAI, les progrès connexes des pairs nationaux ont attiré l'attention. Hier encore, UBTECH, le « stock numéro un de robots humanoïdes » en Chine, a publié la première démo du robot humanoïde WalkerS, profondément intégré au grand modèle de Baidu Wenxin, présentant de nouvelles fonctionnalités intéressantes. Maintenant, WalkerS, bénéficiant des capacités de grands modèles de Baidu Wenxin, ressemble à ceci. Comme la figure 01, WalkerS ne se déplace pas, mais se tient derrière un bureau pour accomplir une série de tâches. Il peut suivre les commandes humaines et plier les vêtements

Le mode Baidu Incognito est une fonctionnalité de protection de la vie privée qui permet aux utilisateurs d'utiliser la recherche Baidu ou d'autres services sans laisser d'informations personnelles ni d'historique de navigation. Pour certains utilisateurs, ils souhaiteront peut-être désactiver le mode navigation privée afin de pouvoir conserver leur historique de recherche ou leur historique de navigation. Alors, comment libérer le mode navigation privée de Baidu ? Amis qui ne sont toujours pas clairs, ne vous inquiétez pas. Ensuite, l'éditeur vous proposera une méthode pour supprimer le mode de navigation incognito. Vous pouvez suivre les étapes ci-dessous. Comment libérer le mode navigation privée de Baidu 1. Cliquez sur l'icône [Baidu] sur le bureau pour ouvrir l'application Baidu. 2. Recherchez quelque chose et accédez à la page des résultats de recherche. 3. Cliquez sur [≡] en bas de la page. 4. Recherchez « Multi-fenêtre » dans la fenêtre contextuelle et cliquez pour entrer. 5. Activer/désactiver « Incognito »

Deepseek est un puissant outil de recherche et d'analyse intelligent qui fournit deux méthodes d'accès: la version Web et le site officiel. La version Web est pratique et efficace et peut être utilisée sans installation; Que ce soit des individus ou des utilisateurs d'entreprise, ils peuvent facilement obtenir et analyser des données massives via Deepseek pour améliorer l'efficacité du travail, aider la prise de décision et promouvoir l'innovation.

De nombreux utilisateurs à Xirang ne savent pas où se trouvent les obus et comment les obtenir. Certains joueurs recherchent depuis plusieurs heures mais ne parviennent toujours pas à les trouver. Ci-dessous, l'éditeur vous expliquera comment obtenir les obus Baidu Xirang. . Venez jeter un oeil. Comment obtenir Baidu Xirang Shell 1. Nous devons d’abord nous rendre dans la communauté, puis nous rendre à l’emplacement indiqué sur l’image ci-dessous. 2. Sélectionnez la destination ici et choisissez d'entrer au 188ème étage. 3. Après être entré au 188ème étage, vous verrez cette invite lorsque vous vous promenerez. Cliquez simplement sur J'ai compris. 4. L'emplacement de la coque peut être un peu difficile à trouver Juste derrière l'ascenseur 188, il y a un petit point lumineux qui représente la coque. 5. Vous devez utiliser un contrôleur VR pour récupérer les coquillages. Cliquez simplement sur le coquillage. Méthode de remboursement 1. Cliquez d'abord sur l'icône "Paramètres" dans le coin supérieur droit de la page et sélectionnez "

Le 15 mai, Baidu Apollo a organisé l'Apollo Day 2024 dans la vallée du robot automobile Baidu Luobo de Wuhan, démontrant de manière exhaustive les progrès majeurs de Baidu en matière de conduite autonome au cours des dix dernières années, apportant des avancées technologiques basées sur de grands modèles et une nouvelle définition de la sécurité des passagers. Plus grand réseau d'exploitation de véhicules autonomes au monde, Baidu a rendu la conduite autonome plus sûre que la conduite humaine. Grâce à cela, des modes de transport plus sûrs, plus confortables, plus écologiques et à faibles émissions de carbone passent d’un idéal à une réalité. Wang Yunpeng, vice-président du groupe Baidu et président de l'Intelligent Driving Business Group, a déclaré sur place : « Notre intention initiale de construire des véhicules autonomes est de satisfaire le désir croissant des gens de mieux voyager. Tellement beau, nous sommes heureux de voir

Selon les informations de ce site du 7 mai, le 6 mai, Robin Li, fondateur, président et PDG de Baidu, a dirigé une équipe pour visiter la China National Petroleum Corporation (ci-après dénommée « PetroChina ») à Pékin et a rencontré les directeurs de Le président de la China National Petroleum Corporation et le secrétaire du Parti, Dai Houliang, se sont entretenus. Les deux parties ont eu des échanges approfondis sur le renforcement de la coopération et la promotion de l'intégration profonde du secteur énergétique avec l'intelligence numérique. PetroChina accélérera la construction d'une China Petroleum Corporation numérique, renforcera la coopération avec le groupe Baidu, promouvra l'intégration approfondie du secteur de l'énergie avec l'intelligence numérique et contribuera davantage à assurer la sécurité énergétique nationale. Robin Li a déclaré que « l'émergence intelligente » et les capacités fondamentales de compréhension, de génération, de logique et de mémoire affichées par les grands modèles ont ouvert un espace d'imagination plus large pour la combinaison de la technologie de pointe et des activités pétrolières et gazières. Toujours

Selon les informations du 31 mai, le blogueur @ibinguniverse a annoncé aujourd'hui que la version chinoise du téléphone mobile de la série Samsung Galaxy S24 « Search in Circle » prendra en charge la recherche Google. Le blogueur n'a pas divulgué l'heure précise du lancement. Selon l'introduction précédente de Samsung, la série Samsung Galaxy S24 a été équipée de nombreuses capacités d'IA de haut niveau, de fonctions pratiques basées sur l'IA telles que la saisie, la traduction, l'enregistreur, les notes et les appareils photo, pour offrir aux utilisateurs une solution complète plus pratique et plus efficace. expérience. Contrairement à la version étrangère, la plupart des fonctions d'IA de la série Samsung Galaxy S24 sont fournies par des fabricants nationaux, tels que Baidu. Signalé précédemment, Galaxy AI intègre profondément plusieurs capacités du grand modèle Baidu Wenxin, qui peuvent fournir des fonctions d'appel et de traduction activées côté extrémité, ainsi qu'un résumé intelligent apporté par l'IA générative.

Cet article présente six outils d'IA populaires, notamment Douyin Doubao, Wenxin Yige, Tencent Zhiying, Baidu Feipiao EasyDL, Baidu AI Studio et iFlytek Spark Cognitive Large Model. Ces outils couvrent différentes fonctions telles que la création de texte, la génération d'images, le montage vidéo et le développement de modèles d'IA. Choisir le bon outil d’IA nécessite de prendre en compte des facteurs tels que les exigences fonctionnelles, le niveau technique et le budget. Ces outils offrent des solutions pratiques et efficaces aux particuliers et aux entreprises ayant besoin de l’assistance de l’IA.
