


Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten
Scrapy ermöglicht das Crawlen von Artikeln und die Analyse öffentlicher WeChat-Konten.
WeChat ist in den letzten Jahren eine sehr beliebte Social-Media-Anwendung, und die darin betriebenen öffentlichen Konten spielen ebenfalls eine sehr wichtige Rolle. Wie wir alle wissen, sind öffentliche WeChat-Konten ein Ozean an Informationen und Wissen, da jedes öffentliche Konto Artikel, grafische Nachrichten und andere Informationen veröffentlichen kann. Diese Informationen können in vielen Bereichen umfassend genutzt werden, beispielsweise in Medienberichten, in der akademischen Forschung usw.
In diesem Artikel erfahren Sie, wie Sie das Scrapy-Framework zum Crawlen und Analysieren von WeChat-Artikeln zu öffentlichen Konten verwenden. Scrapy ist ein Python-Webcrawler-Framework, dessen Hauptfunktion das Data Mining und die Informationssuche ist. Daher ist Scrapy sehr anpassbar und effizient.
- Installieren Sie Scrapy und erstellen Sie das Projekt
Um das Scrapy-Framework zum Crawlen zu verwenden, müssen Sie zunächst Scrapy und andere Abhängigkeiten installieren. Sie können zum Installieren den Befehl pip verwenden. Der Installationsprozess ist wie folgt:
pip install scrapy pip install pymongo pip install mysql-connector-python
Nach der Installation von Scrapy müssen wir das Scrapy-Befehlszeilentool verwenden, um das Projekt zu erstellen. Der Befehl lautet wie folgt:
scrapy startproject wechat
Nach der Ausführung dieses Befehls erstellt Scrapy ein Projekt mit dem Namen „wechat“ und erstellt viele Dateien und Verzeichnisse im Projektverzeichnis.
- Implementieren Sie das Crawlen von Artikeln zu öffentlichen WeChat-Konten
Bevor wir mit dem Crawlen beginnen, müssen wir zunächst das URL-Format der Artikelseiten zu öffentlichen WeChat-Konten verstehen. Die URL einer typischen Artikelseite eines öffentlichen WeChat-Kontos sieht wie folgt aus:
https://mp.weixin.qq.com/s?__biz=XXX&mid=XXX&idx=1&sn=XXX&chksm=XXX#wechat_redirect
Unter diesen steht __biz für die ID des öffentlichen WeChat-Kontos, mid für die ID des Artikels, idx für die Seriennummer des Artikels und sn für die Signatur des Artikels und chksm steht für die Inhaltsüberprüfung. Wenn wir daher alle Artikel eines bestimmten offiziellen Kontos crawlen möchten, müssen wir die ID des offiziellen Kontos finden und diese zum Erstellen der URL verwenden. Unter anderem ist biz_id die eindeutige Kennung des offiziellen Kontos.
Zuerst müssen wir eine Liste mit vielen offiziellen Konto-IDs vorbereiten, da wir die Artikel dieser offiziellen Konten crawlen möchten. Die Sammlung von IDs kann auf verschiedene Weise erfolgen. Hier verwenden wir als Beispiel eine Liste mit mehreren Test-IDs:
biz_ids = ['MzU5MjcwMzA4MA==', 'MzI4MzMwNDgwMQ==', 'MzAxMTcyMzg2MA==']
Als nächstes müssen wir einen Spider schreiben, um alle Artikel eines bestimmten öffentlichen Kontos zu crawlen. Hier übergeben wir den Namen und die ID des offiziellen Kontos an Spider, damit wir mit verschiedenen offiziellen Konto-IDs umgehen können.
import scrapy import re class WeChatSpider(scrapy.Spider): name = "wechat" allowed_domains = ["mp.weixin.qq.com"] def __init__(self, name=None, biz_id=None): super().__init__(name=name) self.start_urls = ['https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz={}==#wechat_redirect'.format(biz_id)] def parse(self, response): article_urls = response.xpath('//h4[1]/a/@href') for url in article_urls.extract(): yield scrapy.Request(url, callback=self.parse_article) next_page = response.xpath('//a[@id="js_next"]/@href') if next_page: yield scrapy.Request(response.urljoin(next_page[0].extract()), callback=self.parse) def parse_article(self, response): url = response.url title = response.xpath('//h2[@class="rich_media_title"]/text()') yield {'url': url, 'title': title.extract_first().strip()}
Spiders Hauptfunktion besteht darin, mit einer bestimmten offiziellen Konto-ID auf die offizielle Konto-Homepage zuzugreifen und dann jede Seite rekursiv zu durchsuchen, um die URLs aller Artikel zu extrahieren. Darüber hinaus wird die Methode parse_article verwendet, um die URL und den Titel des Artikels für die spätere Verarbeitung zu extrahieren. Insgesamt ist diese Spinne nicht sehr komplex, aber die Extraktionsgeschwindigkeit ist langsam.
Abschließend müssen wir im Terminal den folgenden Befehl eingeben, um Spider zu starten:
scrapy crawl wechat -a biz_id=XXXXXXXX
Ebenso können wir auch mehrere offizielle Konten crawlen, geben Sie einfach die IDs aller offiziellen Konten im Befehl an:
scrapy crawl wechat -a biz_id=ID1,ID2,ID3
- Artikeldaten speichern
Nachdem wir den Artikel gecrawlt haben, müssen wir den Titel und die URL des Artikels in einer Datenbank (wie MongoDB, MySQL usw.) speichern. Hier verwenden wir die Pymongo-Bibliothek, um die gecrawlten Daten zu speichern.
import pymongo class MongoPipeline(object): collection_name = 'wechat' def __init__(self, mongo_uri, mongo_db): self.mongo_uri = mongo_uri self.mongo_db = mongo_db @classmethod def from_crawler(cls, crawler): return cls( mongo_uri=crawler.settings.get('MONGO_URI'), mongo_db=crawler.settings.get('MONGO_DATABASE', 'items') ) def open_spider(self, spider): self.client = pymongo.MongoClient(self.mongo_uri) self.db = self.client[self.mongo_db] def close_spider(self, spider): self.client.close() def process_item(self, item, spider): self.db[self.collection_name].insert_one(dict(item)) return item
In dieser Pipeline verwenden wir MongoDB als Backend zum Speichern von Daten. Diese Klasse kann bei Bedarf geändert werden, um andere Datenbanksysteme zu verwenden.
Als nächstes müssen wir datenbankbezogene Parameter in der Datei „settings.py“ konfigurieren:
MONGO_URI = 'mongodb://localhost:27017/' MONGO_DATABASE = 'wechat' ITEM_PIPELINES = {'myproject.pipelines.MongoPipeline': 300}
Abschließend rufen wir Pipeline in Spider auf, um Daten in MongoDB zu speichern:
class WeChatSpider(scrapy.Spider): name = "wechat" allowed_domains = ["mp.weixin.qq.com"] def __init__(self, name=None, biz_id=None): super().__init__(name=name) self.start_urls = ['https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz={}==#wechat_redirect'.format(biz_id)] def parse(self, response): article_urls = response.xpath('//h4[1]/a/@href') for url in article_urls.extract(): yield scrapy.Request(url, callback=self.parse_article) next_page = response.xpath('//a[@id="js_next"]/@href') if next_page: yield scrapy.Request(response.urljoin(next_page[0].extract()), callback=self.parse) def parse_article(self, response): url = response.url title = response.xpath('//h2[@class="rich_media_title"]/text()') yield {'url': url, 'title': title.extract_first().strip()} pipeline = response.meta.get('pipeline') if pipeline: item = dict() item['url'] = url item['title'] = title.extract_first().strip() yield item
Im obigen Code ist die Antwort meta.get(' Pipeline‘) wird verwendet, um das Pipeline-Objekt zu erhalten, das wir in Spider festgelegt haben. Fügen Sie daher einfach den folgenden Code zum Spider-Code hinzu, um Pipeline zu unterstützen:
yield scrapy.Request(url, callback=self.parse_article, meta={'pipeline': 1})
- Datenanalyse
Abschließend werden wir Bibliotheken wie Scrapy und Pandas verwenden, um Daten zu analysieren und zu visualisieren.
Hier extrahieren wir die Daten, die wir aus MongoDB gecrawlt haben, und speichern sie in einer CSV-Datei. Anschließend können wir Pandas verwenden, um die CSV-Datei zu verarbeiten und zu visualisieren.
Das Folgende ist der Implementierungsprozess:
import pandas as pd from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017/') db = client['wechat'] articles = db['wechat'] cursor = articles.find() doc = list(cursor) df = pd.DataFrame(doc) df.to_csv('wechat.csv', encoding='utf-8') df.groupby('biz_id')['title'].count().plot(kind='bar')
Im obigen Code verwenden wir die Bibliotheken MongoDB und Pandas, um die gecrawlten Daten im Datenordner der CSV-Datei zu speichern. Anschließend nutzten wir die leistungsstarke Datenanalysefunktion von Pandas, um die Anzahl der Artikel jedes öffentlichen Kontos visuell darzustellen.
Das obige ist der detaillierte Inhalt vonScrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Scrapy implementiert das Crawlen von Artikeln und die Analyse öffentlicher WeChat-Konten. WeChat ist in den letzten Jahren eine beliebte Social-Media-Anwendung, und die darin betriebenen öffentlichen Konten spielen ebenfalls eine sehr wichtige Rolle. Wie wir alle wissen, sind öffentliche WeChat-Konten ein Ozean an Informationen und Wissen, da jedes öffentliche Konto Artikel, grafische Nachrichten und andere Informationen veröffentlichen kann. Diese Informationen können in vielen Bereichen umfassend genutzt werden, beispielsweise in Medienberichten, in der akademischen Forschung usw. In diesem Artikel erfahren Sie, wie Sie das Scrapy-Framework zum Crawlen und Analysieren von WeChat-Artikeln zu öffentlichen Konten verwenden. Scr

Scrapy ist ein Open-Source-Python-Crawler-Framework, das schnell und effizient Daten von Websites abrufen kann. Viele Websites verwenden jedoch die asynchrone Ladetechnologie von Ajax, was es Scrapy unmöglich macht, Daten direkt abzurufen. In diesem Artikel wird die Scrapy-Implementierungsmethode basierend auf dem asynchronen Laden von Ajax vorgestellt. 1. Ajax-Prinzip des asynchronen Ladens Ajax-Asynchronladen: Bei der herkömmlichen Seitenlademethode muss der Browser, nachdem er eine Anfrage an den Server gesendet hat, darauf warten, dass der Server eine Antwort zurückgibt und die gesamte Seite lädt, bevor er mit dem nächsten Schritt fortfährt.

Scrapy ist ein Python-basiertes Crawler-Framework, mit dem schnell und einfach relevante Informationen im Internet abgerufen werden können. In diesem Artikel analysieren wir anhand eines Scrapy-Falls im Detail, wie Unternehmensinformationen auf LinkedIn gecrawlt werden. Bestimmen Sie die Ziel-URL. Zunächst müssen wir klarstellen, dass unser Ziel die Unternehmensinformationen auf LinkedIn sind. Daher müssen wir die URL der LinkedIn-Unternehmensinformationsseite finden. Öffnen Sie die LinkedIn-Website, geben Sie den Firmennamen in das Suchfeld ein und

Der Unterschied zwischen der Authentifizierung öffentlicher WeChat-Konten und der Nichtauthentifizierung liegt im Authentifizierungslogo, den Funktionsberechtigungen, der Push-Häufigkeit, den Schnittstellenberechtigungen und dem Benutzervertrauen. Detaillierte Einführung: 1. Zertifizierungslogo. Zertifizierte öffentliche Konten erhalten das offizielle Zertifizierungslogo, das blaue V-Logo. Dieses Logo kann die Glaubwürdigkeit und Autorität des öffentlichen Kontos erhöhen und es Benutzern erleichtern, das echte offizielle öffentliche Konto zu identifizieren 2. Funktionsberechtigungen. Zertifizierte öffentliche Konten verfügen beispielsweise über mehr Funktionen und Berechtigungen als nicht zertifizierte öffentliche Konten.

Scrapy ist ein leistungsstarkes Python-Crawler-Framework, mit dem große Datenmengen aus dem Internet abgerufen werden können. Bei der Entwicklung von Scrapy stoßen wir jedoch häufig auf das Problem, doppelte URLs zu crawlen, was viel Zeit und Ressourcen verschwendet und die Effizienz beeinträchtigt. In diesem Artikel werden einige Scrapy-Optimierungstechniken vorgestellt, um das Crawlen doppelter URLs zu reduzieren und die Effizienz von Scrapy-Crawlern zu verbessern. 1. Verwenden Sie die Attribute „start_urls“ und „allowed_domains“ im Scrapy-Crawler

Verwendung von Selenium und PhantomJS in Scrapy-Crawlern Scrapy ist ein hervorragendes Webcrawler-Framework unter Python und wird häufig bei der Datenerfassung und -verarbeitung in verschiedenen Bereichen eingesetzt. Bei der Implementierung des Crawlers ist es manchmal erforderlich, Browservorgänge zu simulieren, um die von bestimmten Websites präsentierten Inhalte abzurufen. In diesem Fall werden Selenium und PhantomJS benötigt. Selenium simuliert menschliche Vorgänge im Browser und ermöglicht uns so die Automatisierung von Webanwendungstests

Scrapy ist ein leistungsstarkes Python-Crawler-Framework, mit dem wir schnell und flexibel Daten im Internet abrufen können. Beim eigentlichen Crawling-Prozess stoßen wir häufig auf verschiedene Datenformate wie HTML, XML und JSON. In diesem Artikel stellen wir vor, wie man Scrapy zum Crawlen dieser drei Datenformate verwendet. 1. HTML-Daten crawlen und ein Scrapy-Projekt erstellen. Zuerst müssen wir ein Scrapy-Projekt erstellen. Öffnen Sie die Befehlszeile und geben Sie den folgenden Befehl ein: scrapys

So entwickeln Sie mit Laravel ein Online-Bestellsystem auf Basis offizieller WeChat-Konten Mit der weit verbreiteten Nutzung offizieller WeChat-Konten beginnen immer mehr Unternehmen, diese als wichtigen Kanal für das Online-Marketing zu nutzen. In der Gastronomiebranche kann die Entwicklung eines Online-Bestellsystems auf Basis öffentlicher WeChat-Konten die Effizienz und den Umsatz von Unternehmen verbessern. In diesem Artikel wird erläutert, wie Sie mit dem Laravel-Framework ein solches System entwickeln, und es werden spezifische Codebeispiele bereitgestellt. Projektvorbereitung Zunächst müssen Sie sicherstellen, dass das Laravel-Framework in der lokalen Umgebung installiert wurde. OK
