Maison développement back-end Tutoriel Python Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat

Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat

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

Scrapy met en œuvre l'exploration d'articles et l'analyse des comptes publics WeChat

WeChat est une application de médias sociaux populaire ces dernières années, et les comptes publics qui y opèrent jouent également un rôle très important. Comme nous le savons tous, les comptes publics WeChat sont un océan d’informations et de connaissances, car chaque compte public peut publier des articles, des messages graphiques et d’autres informations. Ces informations peuvent être largement utilisées dans de nombreux domaines, tels que les reportages médiatiques, la recherche universitaire, etc.

Donc, cet article présentera comment utiliser le framework Scrapy pour explorer et analyser les articles du compte public WeChat. Scrapy est un framework de robot d'exploration Web Python dont la fonction principale est l'exploration de données et la recherche d'informations. Par conséquent, Scrapy est très personnalisable et efficace.

  1. Installez Scrapy et créez un projet

Pour utiliser le framework Scrapy pour l'exploration, vous devez d'abord installer Scrapy et d'autres dépendances. Vous pouvez utiliser la commande pip pour installer. Le processus d'installation est le suivant :

pip install scrapy
pip install pymongo
pip install mysql-connector-python
Copier après la connexion

Après avoir installé Scrapy, nous devons utiliser l'outil de ligne de commande Scrapy pour créer le projet. La commande est la suivante :

scrapy startproject wechat
Copier après la connexion

Après avoir exécuté cette commande, Scrapy créera un projet nommé "wechat" et créera de nombreux fichiers et répertoires dans le répertoire du projet.

  1. Implémenter l'exploration des articles du compte public WeChat

Avant de commencer l'exploration, nous devons d'abord comprendre l'URL de la page de l'article du compte public WeChat Format. L'URL d'une page d'article de compte public WeChat typique ressemble à ceci :

https://mp.weixin.qq.com/s?__biz=XXX&mid=XXX&idx=1&sn=XXX&chksm=XXX#wechat_redirect
Copier après la connexion

où, __biz représente l'ID du compte public WeChat, mid représente l'ID de l'article, idx représente le numéro de série du article, et sn représente la signature de l'article. chksm signifie vérification du contenu. Par conséquent, si nous voulons explorer tous les articles d’un certain compte officiel, nous devons trouver l’ID du compte officiel et l’utiliser pour créer l’URL. Parmi eux, biz_id est l'identifiant unique du compte officiel.

Tout d'abord, nous devons préparer une liste contenant de nombreux identifiants de comptes officiels, car nous souhaitons explorer les articles de ces comptes officiels. La collecte des identifiants peut être réalisée par divers moyens. Ici, nous utilisons une liste contenant plusieurs identifiants de test à titre d'exemple :

biz_ids = ['MzU5MjcwMzA4MA==', 'MzI4MzMwNDgwMQ==', 'MzAxMTcyMzg2MA==']
Copier après la connexion

Ensuite, nous devons écrire un Spider pour explorer tous les articles d'un certain compte public. Ici, nous transmettons le nom et l'identifiant du compte officiel à Spider afin que nous puissions gérer différents identifiants de compte officiel.

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()}
Copier après la connexion

La fonction principale de Spider est d'utiliser un identifiant de compte officiel donné pour accéder à la page d'accueil du compte officiel, puis de parcourir de manière récursive chaque page pour extraire les URL de tous les articles. De plus, la méthode parse_article est utilisée pour extraire l'URL et le titre de l'article pour un traitement ultérieur. Dans l’ensemble, cette araignée n’est pas très complexe, mais la vitesse d’extraction est lente.

Enfin, nous devons entrer la commande suivante dans Terminal pour démarrer Spider :

scrapy crawl wechat -a biz_id=XXXXXXXX
Copier après la connexion

De même, nous pouvons également explorer plusieurs comptes publics, il suffit de le spécifier dans la commande. Utilisez simplement le ID de tous les comptes publics :

scrapy crawl wechat -a biz_id=ID1,ID2,ID3
Copier après la connexion
  1. Stockage des données d'article

Après avoir exploré l'article, nous devons enregistrer le titre et l'URL de l'article à la base de données (comme MongoDB, MySQL, etc.). Ici, nous utiliserons la bibliothèque pymongo pour enregistrer les données analysées.

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
Copier après la connexion

Dans ce pipeline, nous utilisons MongoDB comme backend pour stocker les données. Cette classe peut être modifiée selon les besoins pour utiliser d'autres systèmes de bases de données.

Ensuite, nous devons configurer les paramètres liés à la base de données dans le fichier settings.py :

MONGO_URI = 'mongodb://localhost:27017/'
MONGO_DATABASE = 'wechat'
ITEM_PIPELINES = {'myproject.pipelines.MongoPipeline': 300}
Copier après la connexion

Enfin, nous appelons Pipeline dans Spider pour stocker les données dans MongoDB :#🎜🎜 #

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
Copier après la connexion

Dans le code ci-dessus, Response.meta.get('pipeline') est utilisé pour obtenir l'objet Pipeline que nous avons défini dans Spider. Par conséquent, ajoutez simplement le code suivant au code Spider pour prendre en charge Pipeline :

yield scrapy.Request(url, callback=self.parse_article, meta={'pipeline': 1})
Copier après la connexion

    Data Analysis
Enfin, nous utiliserons des bibliothèques telles que Scrapy et pandas sont utilisés pour analyser et visualiser les données.

Ici, nous allons extraire les données que nous avons explorées de MongoDB et les enregistrer dans un fichier CSV. Par la suite, nous pouvons utiliser des pandas pour traiter et visualiser le fichier CSV.

Voici le processus d'implémentation :

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')
Copier après la connexion
Dans le code ci-dessus, nous utilisons les bibliothèques MongoDB et Pandas pour enregistrer les données analysées dans le dossier de données du fichier CSV. Par la suite, nous avons utilisé la puissante fonction d’analyse de données de Pandas pour afficher visuellement le nombre d’articles de chaque compte officiel.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat Jun 22, 2023 am 09:41 AM

Scrapy met en œuvre l'exploration d'articles et l'analyse des comptes publics WeChat. WeChat est une application de médias sociaux populaire ces dernières années, et les comptes publics qui y sont exploités jouent également un rôle très important. Comme nous le savons tous, les comptes publics WeChat sont un océan d’informations et de connaissances, car chaque compte public peut publier des articles, des messages graphiques et d’autres informations. Ces informations peuvent être largement utilisées dans de nombreux domaines, tels que les reportages médiatiques, la recherche universitaire, etc. Ainsi, cet article expliquera comment utiliser le framework Scrapy pour explorer et analyser les articles du compte public WeChat. Scr

Méthode d'implémentation de chargement asynchrone Scrapy basée sur Ajax Méthode d'implémentation de chargement asynchrone Scrapy basée sur Ajax Jun 22, 2023 pm 11:09 PM

Scrapy est un framework d'exploration Python open source qui peut obtenir rapidement et efficacement des données à partir de sites Web. Cependant, de nombreux sites Web utilisent la technologie de chargement asynchrone Ajax, ce qui empêche Scrapy d'obtenir directement des données. Cet article présentera la méthode d'implémentation de Scrapy basée sur le chargement asynchrone Ajax. 1. Principe de chargement asynchrone Ajax Chargement asynchrone Ajax : Dans la méthode de chargement de page traditionnelle, une fois que le navigateur a envoyé une requête au serveur, il doit attendre que le serveur renvoie une réponse et charge la page entière avant de passer à l'étape suivante.

Analyse de cas Scrapy : Comment explorer les informations de l'entreprise sur LinkedIn Analyse de cas Scrapy : Comment explorer les informations de l'entreprise sur LinkedIn Jun 23, 2023 am 10:04 AM

Scrapy est un framework d'exploration basé sur Python qui peut obtenir rapidement et facilement des informations pertinentes sur Internet. Dans cet article, nous utiliserons un cas Scrapy pour analyser en détail comment explorer les informations d'une entreprise sur LinkedIn. Déterminer l'URL cible Tout d'abord, nous devons indiquer clairement que notre cible est les informations de l'entreprise sur LinkedIn. Par conséquent, nous devons trouver l’URL de la page d’informations sur l’entreprise LinkedIn. Ouvrez le site Web LinkedIn, saisissez le nom de l'entreprise dans le champ de recherche et

Quelles sont les différences entre la certification et la non-certification du compte officiel WeChat ? Quelles sont les différences entre la certification et la non-certification du compte officiel WeChat ? Sep 19, 2023 pm 02:15 PM

La différence entre l'authentification du compte public WeChat et la non-authentification réside dans le logo d'authentification, les autorisations de fonction, la fréquence de poussée, les autorisations d'interface et la confiance de l'utilisateur. Introduction détaillée : 1. Le logo de certification. Les comptes publics certifiés obtiendront le logo de certification officiel, qui est le logo bleu V. Ce logo peut augmenter la crédibilité et l'autorité du compte public et permettre aux utilisateurs d'identifier plus facilement le véritable compte public officiel. 2. Autorisations de fonction. Les comptes publics certifiés ont plus de fonctions et d'autorisations que les comptes publics non certifiés. Par exemple, les comptes publics certifiés peuvent demander à activer la fonction de paiement WeChat pour réaliser des paiements en ligne et des opérations commerciales, etc.

Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Jun 22, 2023 pm 01:57 PM

Scrapy est un puissant framework d'exploration Python qui peut être utilisé pour obtenir de grandes quantités de données sur Internet. Cependant, lors du développement de Scrapy, nous rencontrons souvent le problème de l'exploration des URL en double, ce qui fait perdre beaucoup de temps et de ressources et affecte l'efficacité. Cet article présentera quelques techniques d'optimisation de Scrapy pour réduire l'exploration des URL en double et améliorer l'efficacité des robots d'exploration Scrapy. 1. Utilisez les attributs start_urls et Allowed_domains dans le robot d'exploration Scrapy pour

Utilisation de Selenium et PhantomJS dans le robot Scrapy Utilisation de Selenium et PhantomJS dans le robot Scrapy Jun 22, 2023 pm 06:03 PM

Utilisation de Selenium et PhantomJSScrapy dans le robot d'exploration Scrapy Scrapy est un excellent framework de robot d'exploration Web sous Python et a été largement utilisé dans la collecte et le traitement de données dans divers domaines. Dans la mise en œuvre du robot, il est parfois nécessaire de simuler les opérations du navigateur pour obtenir le contenu présenté par certains sites Web. Dans ce cas, Selenium et PhantomJS sont nécessaires. Selenium simule les opérations humaines sur le navigateur, nous permettant d'automatiser les tests d'applications Web

Comment utiliser Laravel pour développer un système de commande en ligne basé sur le compte public WeChat Comment utiliser Laravel pour développer un système de commande en ligne basé sur le compte public WeChat Nov 02, 2023 am 09:42 AM

Comment utiliser Laravel pour développer un système de commande en ligne basé sur les comptes officiels WeChat. Avec l'utilisation généralisée des comptes officiels WeChat, de plus en plus d'entreprises commencent à les utiliser comme canal important de marketing en ligne. Dans le secteur de la restauration, le développement d'un système de commande en ligne basé sur les comptes publics WeChat peut améliorer l'efficacité et les ventes des entreprises. Cet article expliquera comment utiliser le framework Laravel pour développer un tel système et fournira des exemples de code spécifiques. Préparation du projet Tout d'abord, vous devez vous assurer que le framework Laravel a été installé dans l'environnement local. D'ACCORD

Utilisation approfondie de Scrapy : Comment explorer les données HTML, XML et JSON ? Utilisation approfondie de Scrapy : Comment explorer les données HTML, XML et JSON ? Jun 22, 2023 pm 05:58 PM

Scrapy est un puissant framework de robot d'exploration Python qui peut nous aider à obtenir des données sur Internet de manière rapide et flexible. Dans le processus d'exploration proprement dit, nous rencontrons souvent divers formats de données tels que HTML, XML et JSON. Dans cet article, nous présenterons comment utiliser Scrapy pour explorer respectivement ces trois formats de données. 1. Explorez les données HTML et créez un projet Scrapy. Tout d'abord, nous devons créer un projet Scrapy. Ouvrez la ligne de commande et entrez la commande suivante : scrapys

See all articles