Heim Backend-Entwicklung Python-Tutorial Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten

Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten

Jun 22, 2023 am 09:41 AM
微信公众号 分析。 scrapy

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.

  1. 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 dem Login kopieren

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 dem Login kopieren

Nach der Ausführung dieses Befehls erstellt Scrapy ein Projekt mit dem Namen „wechat“ und erstellt viele Dateien und Verzeichnisse im Projektverzeichnis.

  1. 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
Nach dem Login kopieren

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==']
Nach dem Login kopieren

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()}
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren
  1. 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
Nach dem Login kopieren

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}
Nach dem Login kopieren

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
Nach dem Login kopieren

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})
Nach dem Login kopieren
  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')
Nach dem Login kopieren

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!

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)

Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Jun 22, 2023 am 09:41 AM

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-Implementierungsmethode für asynchrones Laden basierend auf Ajax Scrapy-Implementierungsmethode für asynchrones Laden basierend auf Ajax Jun 22, 2023 pm 11:09 PM

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-Fallanalyse: So crawlen Sie Unternehmensinformationen auf LinkedIn Scrapy-Fallanalyse: So crawlen Sie Unternehmensinformationen auf LinkedIn Jun 23, 2023 am 10:04 AM

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

Was sind die Unterschiede zwischen der offiziellen WeChat-Kontozertifizierung und der Nichtzertifizierung? Was sind die Unterschiede zwischen der offiziellen WeChat-Kontozertifizierung und der Nichtzertifizierung? Sep 19, 2023 pm 02:15 PM

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.

Tipps zur Scrapy-Optimierung: So reduzieren Sie das Crawling doppelter URLs und verbessern die Effizienz Tipps zur Scrapy-Optimierung: So reduzieren Sie das Crawling doppelter URLs und verbessern die Effizienz Jun 22, 2023 pm 01:57 PM

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 im Scrapy-Crawler Verwendung von Selenium und PhantomJS im Scrapy-Crawler Jun 22, 2023 pm 06:03 PM

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

Ausführlicher Einsatz von Scrapy: Wie crawlt man HTML-, XML- und JSON-Daten? Ausführlicher Einsatz von Scrapy: Wie crawlt man HTML-, XML- und JSON-Daten? Jun 22, 2023 pm 05:58 PM

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 basierend auf dem öffentlichen WeChat-Konto So entwickeln Sie mit Laravel ein Online-Bestellsystem basierend auf dem öffentlichen WeChat-Konto Nov 02, 2023 am 09:42 AM

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

See all articles