Heim Web-Frontend js-Tutorial So implementieren Sie die Baidu-Index-Crawler-Funktion

So implementieren Sie die Baidu-Index-Crawler-Funktion

Apr 12, 2018 pm 04:45 PM
指数 爬虫 百度

Dieses Mal zeige ich Ihnen, wie Sie die Baidu-Index-Crawler-Funktion implementieren und welche Vorsichtsmaßnahmen für die Implementierung der Baidu-Index-Crawler-Funktion gelten. Hier sind praktische Fälle, werfen wir einen Blick darauf.

Ich habe zuvor einen einfallsreichen Artikel gelesen, in dem die Front-End-Anti-Crawling-Techniken verschiedener großer Hersteller vorgestellt wurden, aber wie in diesem Artikel gesagt wurde, gibt es keine 100%ige Anti-Crawling-Methode. Dieser Artikel stellt eine einfache Methode vor, um all diese Fronten zu umgehen -Ende der Anti-Crawler-Maßnahmen.

Der folgende Code verwendet Baidu Index als Beispiel. Der Code wurde in eine Baidu Index-Crawler-Knotenbibliothek gepackt: https://github.com/Coffcer/baidu-index-spider

Hinweis: Bitte missbrauchen Sie Crawler nicht, um anderen Ärger zu bereiten

Die Anti-Crawler-Strategie von Baidu Index

Beobachten Sie die Benutzeroberfläche von Baidu Index. Wenn Sie mit der Maus über einen bestimmten Tag fahren, werden zwei Anfragen ausgelöst und die Ergebnisse werden im schwebenden Feld angezeigt Es kann festgestellt werden, dass Baidu Index tatsächlich bestimmte Anti-Crawler-Strategien im Frontend implementiert hat. Wenn die Maus über das Diagramm bewegt wird, werden zwei Anfragen ausgelöst, eine Anfrage gibt ein Stück HTML zurück und eine Anfrage gibt ein generiertes Bild zurück. Der HTML-Code enthält keine tatsächlichen Werte, sondern legt die Breite und den

margin-left

fest, um die entsprechenden Zeichen auf dem Bild anzuzeigen. Darüber hinaus enthält der Anforderungsparameter Parameter wie res und res1, die wir nicht simulieren können, sodass es schwierig ist, die Baidu-Indexdaten mit herkömmlichen simulierten Anforderungen oder HTML-Crawling-Methoden zu crawlen.

Reptil-Idee

Wie man die Anti-Crawler-Methode von Baidu durchbricht, ist eigentlich sehr einfach, es ist nur egal, wie es Anti-Crawler ist. Wir müssen lediglich Benutzervorgänge simulieren, einen Screenshot der erforderlichen Werte erstellen und eine Bilderkennung durchführen. Die Schritte sind ungefähr:

    Anmeldung simulieren
  1. Öffnen Sie die Indexseite
  2. Bewegen Sie die Maus zum angegebenen Datum
  3. Warten Sie, bis die Anfrage beendet ist, und erfassen Sie den numerischen Teil des Bildes
  4. Die Bilderkennung erhält den Wert
  5. Durchlaufen Sie die Schritte 3 bis 5, um den Wert für jedes Datum zu erhalten
  6. Diese Methode kann theoretisch den Inhalt jeder Website crawlen. Als nächstes werden wir den Crawler Schritt für Schritt implementieren. Die folgenden Bibliotheken werden verwendet:

  1. Puppenspieler

    Browser-Bedienung simulieren

  2. node-tesseract

    Ein Tesseract-Paket, das zur Bilderkennung verwendet wird

  3. Jimp

    Bildzuschnitt

Installieren Sie Puppeteer und simulieren Sie Benutzervorgänge

Puppeteer ist ein vom Google Chrome-Team entwickeltes Chrome-Automatisierungstool, das zur Steuerung von Chrome-Ausführungsbefehlen verwendet wird. Sie können Benutzervorgänge simulieren, automatisierte Tests, Crawler usw. durchführen. Die Verwendung ist sehr einfach. Es gibt viele Einführungs-Tutorials im Internet. Nach dem Lesen dieses Artikels können Sie wahrscheinlich wissen, wie man es verwendet.

API-Dokumentation: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md

Installation:

Puppeteer lädt Chromium während der Installation automatisch herunter, um sicherzustellen, dass es ordnungsgemäß funktioniert. Inländische Netzwerke können Chromium jedoch möglicherweise nicht erfolgreich herunterladen. Wenn der Download fehlschlägt, können Sie es mit cnpm installieren oder die Download-Adresse auf den Taobao-Spiegel ändern und es dann erneut installieren:
npm install --save puppeteer
Nach dem Login kopieren

Sie können den Chromium-Download während der Installation auch überspringen und ihn ausführen, indem Sie den nativen Chrome-Pfad über den Code angeben:
npm config set PUPPETEER_DOWNLOAD_HOST=https://npm.taobao.org/mirrors
npm install --save puppeteer
Nach dem Login kopieren

// npm
npm install --save puppeteer --ignore-scripts
// node
puppeteer.launch({ executablePath: '/path/to/Chrome' });
Nach dem Login kopieren
Leistung

Um das Layout übersichtlich zu halten, werden unten nur die Hauptteile aufgeführt. Die Teile des Codes, die den Selektor betreffen, werden durch ... ersetzt. Den vollständigen Code finden Sie im Github-Repository oben im Artikel.

Baidu-Indexseite öffnen und Anmeldung simulieren

Hier werden Benutzervorgänge, Klicks und Eingaben Schritt für Schritt simuliert. Es gibt keine Handhabung des Anmelde-

Bestätigungscodes

. Wenn Sie sich lokal bei Baidu angemeldet haben, benötigen Sie im Allgemeinen keinen Bestätigungscode.

// 启动浏览器,
// 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: 登录成功');
Nach dem Login kopieren
Simulieren Sie die Bewegung der Maus und erhalten Sie die erforderlichen Daten

需要将页面滚动到趋势图的区域,然后移动鼠标到某个日期上,等待请求结束,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
 }
});
Nach dem Login kopieren

截图

计算数值的坐标,截图并用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);
Nach dem Login kopieren

图像识别

这里我们用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);
Nach dem Login kopieren

实际上未经训练的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;
 }
}
Nach dem Login kopieren

反爬虫

最后,如何抵挡这种爬虫呢,个人认为通过判断鼠标移动轨迹可能是一种方法。当然前端没有100%的反爬虫手段,我们能做的只是给爬虫增加一点难度。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

easyui日期时间框在IE中的兼容性如何处理

vue判断input输入内容有否有空格

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Baidu-Index-Crawler-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Nach 2 Monaten kann der humanoide Roboter Walker S Kleidung falten Apr 03, 2024 am 08:01 AM

Herausgeber des Machine Power Report: Wu Xin Die heimische Version des humanoiden Roboters + eines großen Modellteams hat zum ersten Mal die Betriebsaufgabe komplexer flexibler Materialien wie das Falten von Kleidung abgeschlossen. Mit der Enthüllung von Figure01, das das multimodale große Modell von OpenAI integriert, haben die damit verbundenen Fortschritte inländischer Kollegen Aufmerksamkeit erregt. Erst gestern veröffentlichte UBTECH, Chinas „größter Bestand an humanoiden Robotern“, die erste Demo des humanoiden Roboters WalkerS, der tief in das große Modell von Baidu Wenxin integriert ist und einige interessante neue Funktionen aufweist. Jetzt sieht WalkerS, gesegnet mit Baidu Wenxins großen Modellfähigkeiten, so aus. Wie Figure01 bewegt sich WalkerS nicht umher, sondern steht hinter einem Schreibtisch, um eine Reihe von Aufgaben zu erledigen. Es kann menschlichen Befehlen folgen und Kleidung falten

Deepseek Web Version Eingang Deepseek Offizielle Website Eingang Deepseek Web Version Eingang Deepseek Offizielle Website Eingang Feb 19, 2025 pm 04:54 PM

Deepseek ist ein leistungsstarkes Intelligent -Such- und Analyse -Tool, das zwei Zugriffsmethoden bietet: Webversion und offizielle Website. Die Webversion ist bequem und effizient und kann ohne Installation verwendet werden. Unabhängig davon, ob Einzelpersonen oder Unternehmensnutzer, können sie massive Daten über Deepseek problemlos erhalten und analysieren, um die Arbeitseffizienz zu verbessern, die Entscheidungsfindung zu unterstützen und Innovationen zu fördern.

So deaktivieren Sie den Inkognito-Modus von Baidu So deaktivieren Sie den Inkognito-Modus von Baidu Feb 29, 2024 pm 03:40 PM

Der Baidu-Inkognito-Modus ist eine Datenschutzfunktion, die es Benutzern ermöglicht, die Baidu-Suche oder andere Dienste zu nutzen, ohne persönliche Daten oder Browserverlauf zu hinterlassen. Einige Benutzer möchten möglicherweise den Inkognitomodus deaktivieren, damit sie ihren Such- oder Browserverlauf behalten können. Wie kann man den Inkognito-Modus von Baidu freigeben? Freunde, die sich noch nicht sicher sind, keine Sorge, der Editor zeigt Ihnen eine Methode zum Entfernen des Inkognito-Browsermodus. Sie können die folgenden Schritte ausführen. So aktivieren Sie den Inkognito-Modus von Baidu: 1. Klicken Sie auf dem Desktop auf das Symbol [Baidu], um die Baidu-App zu öffnen. 2. Suchen Sie nach etwas und rufen Sie die Suchergebnisseite auf. 3. Klicken Sie unten auf der Seite auf [≡]. 4. Suchen Sie im Popup-Fenster nach „Multi-Window“ und klicken Sie zur Eingabe. 5. „Inkognito“ ein-/ausschalten

Einführung in den Erhalt von Baidu-Xiyang-Muscheln Einführung in den Erhalt von Baidu-Xiyang-Muscheln Mar 28, 2024 am 09:11 AM

Es gibt viele Benutzer in Xirang, die nicht wissen, wo die Muscheln sind und wie sie sie bekommen können. Einige Spieler haben mehrere Stunden lang gesucht, können sie aber immer noch nicht finden. Nachfolgend erfahren Sie, wie Sie Baidu-Xirang-Muscheln erhalten . Kommen Sie vorbei. So erhalten Sie Baidu Xirang Shell 1. Zuerst müssen wir zur Community und dann zum Ort im Bild unten kommen. 2. Wählen Sie hier das Ziel aus und betreten Sie die 188. Etage. 3. Nachdem Sie die 188. Etage betreten haben, sehen Sie diese Aufforderung, wenn Sie herumlaufen. Klicken Sie einfach auf „I Got It“. 4. Der Standort der Muschel ist möglicherweise etwas schwierig zu finden. Direkt hinter dem Aufzug 188 befindet sich ein kleiner leuchtender Punkt, bei dem es sich um die Muschel handelt. 5. Sie müssen einen VR-Controller verwenden, um Muscheln aufzunehmen. Klicken Sie einfach auf die Muschel. Einlösungsmethode 1. Klicken Sie zunächst auf das Symbol „Einstellungen“ in der oberen rechten Ecke der Seite und wählen Sie „

Baidu Apollo bringt Apollo ADFM auf den Markt, das weltweit erste große Modell, das autonomes Fahren der Stufe L4 unterstützt Baidu Apollo bringt Apollo ADFM auf den Markt, das weltweit erste große Modell, das autonomes Fahren der Stufe L4 unterstützt Jun 04, 2024 pm 08:01 PM

Am 15. Mai veranstaltete Baidu Apollo den Apollo Day 2024 im Wuhan Baidu Carrot Auto Robot Zhixing Valley und demonstrierte umfassend Baidus große Fortschritte beim autonomen Fahren in den letzten zehn Jahren, die auf großen Modellen basierende Technologiesprünge und eine neue Definition der Passagiersicherheit mit sich brachten Baidu, das weltweit größte autonome Fahrzeugbetriebsnetzwerk, hat autonomes Fahren sicherer gemacht als menschliches Fahren. Dadurch werden sicherere, komfortablere, umweltfreundlichere und kohlenstoffärmere Reisemethoden vom Ideal zur Realität. Wang Yunpeng, Vizepräsident der Baidu Group und Präsident der Intelligent Driving Business Group, sagte vor Ort: „Unsere ursprüngliche Absicht, autonome Fahrzeuge zu bauen, besteht darin, den wachsenden Wunsch der Menschen nach besserem Reisen zu befriedigen. Die Zufriedenheit der Menschen ist unsere treibende Kraft. Denn Sicherheit, So schön, wir freuen uns, es zu sehen

Baidu Robin Li leitete ein Team, das PetroChina besuchte, um die Erkenntnisse der Öl- und Gasindustrie zu besprechen Baidu Robin Li leitete ein Team, das PetroChina besuchte, um die Erkenntnisse der Öl- und Gasindustrie zu besprechen May 07, 2024 pm 06:13 PM

Laut Nachrichten dieser Website vom 7. Mai besuchte Robin Li, Gründer, Vorsitzender und CEO von Baidu, am 6. Mai mit einem Team die China National Petroleum Corporation (im Folgenden als „PetroChina“ bezeichnet) in Peking und traf sich mit Direktoren von Dai Houliang, Vorsitzender der China National Petroleum Corporation und Parteisekretär, führte Gespräche. Die beiden Parteien führten einen intensiven Austausch über die Stärkung der Zusammenarbeit und die Förderung der tiefen Integration der Energiewirtschaft mit digitaler Intelligenz. PetroChina wird den Aufbau einer digitalen China Petroleum Corporation beschleunigen, die Zusammenarbeit mit der Baidu Group stärken, die tiefgreifende Integration der Energiewirtschaft mit digitaler Intelligenz fördern und einen größeren Beitrag zur Gewährleistung der nationalen Energiesicherheit leisten. Robin Li sagte, dass die „intelligente Emergenz“ und die Kernfähigkeiten des Verstehens, der Generierung, der Logik und des Gedächtnisses, die große Modelle zeigen, einen größeren Raum für die Vorstellungskraft für die Kombination von Spitzentechnologie und Öl- und Gasgeschäft eröffnet hätten. Stets

Es wird berichtet, dass die chinesische Version des Mobiltelefons „Search in Circle' der Samsung Galaxy S24-Serie die Google-Suche unterstützen wird Es wird berichtet, dass die chinesische Version des Mobiltelefons „Search in Circle' der Samsung Galaxy S24-Serie die Google-Suche unterstützen wird Jun 01, 2024 am 09:54 AM

Laut Nachrichten vom 31. Mai verbreitete der Blogger @ibinguniverse heute die Nachricht, dass die chinesische Version des Mobiltelefons „Search in Circle“ der Samsung Galaxy S24-Serie die Google-Suche unterstützen wird. Den konkreten Startzeitpunkt gab der Blogger nicht bekannt. Laut der vorherigen Einführung von Samsung wurde die Samsung Galaxy S24-Serie mit vielen hochrangigen KI-Funktionen, KI-basierten praktischen Funktionen wie Eingabe, Übersetzung, Rekorder, Notizen und Kameras ausgestattet, um Benutzern ein bequemeres und effizienteres Gesamterlebnis zu bieten Erfahrung. Anders als bei der Überseeversion werden die meisten KI-Funktionen der Samsung Galaxy S24-Serie von inländischen Herstellern wie Baidu bereitgestellt. Wie bereits berichtet, integriert Galaxy AI mehrere Funktionen des großen Baidu Wenxin-Modells umfassend, wodurch endseitige Anruf- und Übersetzungsfunktionen sowie intelligente Zusammenfassungen durch generative KI bereitgestellt werden können.

Empfehlung für ein KI-Tool Empfehlung für ein KI-Tool Nov 29, 2024 am 11:08 AM

In diesem Artikel werden sechs beliebte KI-Tools vorgestellt, darunter Douyin Doubao, Wenxin Yige, Tencent Zhiying, Baidu Feipiao EasyDL, Baidu AI Studio und iFlytek Spark Cognitive Large Model. Diese Tools decken verschiedene Funktionen wie Texterstellung, Bildgenerierung, Videobearbeitung und KI-Modellentwicklung ab. Bei der Auswahl des richtigen KI-Tools müssen Faktoren wie funktionale Anforderungen, technisches Niveau und Kostenbudget berücksichtigt werden. Diese Tools bieten praktische und effiziente Lösungen für Einzelpersonen und Unternehmen, die KI-Unterstützung benötigen.

See all articles