国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ バックエンド開発 Python チュートリアル Scrapy は WeChat パブリック アカウント記事のクロールと分析を?qū)g裝します

Scrapy は WeChat パブリック アカウント記事のクロールと分析を?qū)g裝します

Jun 22, 2023 am 09:41 AM
WeChatの公開アカウント 分析する。 scrapy

Scrapy は WeChat パブリックアカウント記事のクロールと分析を?qū)g裝します

WeChat は近年非常に人気のあるソーシャル メディア アプリケーションであり、そこで運(yùn)用されるパブリック アカウントも非常に重要な役割を果たしています。誰(shuí)もが知っているように、WeChat の公開アカウントは記事、グラフィック メッセージ、その他の情報(bào)を公開できるため、情報(bào)と知識(shí)の海です。この情報(bào)は、メディア報(bào)道、學(xué)術(shù)研究など、さまざまな分野で広く使用できます。

そこで、この記事では、Scrapy フレームワークを使用して WeChat パブリック アカウントの記事をクロールおよび分析する方法を紹介します。 Scrapy は、主な機(jī)能がデータ マイニングと情報(bào)検索である Python Web クローラー フレームワークです。したがって、Scrapy は非常にカスタマイズ可能で効率的です。

  1. Scrapy をインストールしてプロジェクトを作成する

Scrapy フレームワークをクロールに使用するには、まず Scrapy とその他の依存関係をインストールする必要があります。 pip コマンドを使用してインストールできます。インストール プロセスは次のとおりです:

pip install scrapy
pip install pymongo
pip install mysql-connector-python

Scrapy をインストールした後、Scrapy コマンド ライン ツールを使用してプロジェクトを作成する必要があります。コマンドは次のとおりです:

scrapy startproject wechat

このコマンドを?qū)g行すると、Scrapy は「wechat」という名前のプロジェクトを作成し、プロジェクト ディレクトリ內(nèi)に多くのファイルとディレクトリを作成します。

  1. WeChat パブリック アカウントの記事のクロールを?qū)g裝する

クロールを開始する前に、まず WeChat パブリック アカウントの記事ページの URL 形式を理解する必要があります。一般的な WeChat パブリック アカウントの記事ページの URL は次のようになります。

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

このうち、__biz は WeChat パブリック アカウントの ID、mid は記事の ID、idx は記事のシリアル番號(hào)を表します。 、sn は記事の署名を表し、chksm はコンテンツ検証を表します。したがって、特定の公式アカウントのすべての記事をクロールしたい場(chǎng)合は、公式アカウントの ID を見つけて、それを使用して URL を構(gòu)築する必要があります。このうち、biz_idは公式アカウントの一意の識(shí)別子です。

まず、公式アカウントの記事をクロールしたいので、多數(shù)の公式アカウントIDを含むリストを用意する必要があります。 ID の収集はさまざまな手段で行うことができます。ここでは、例として複數(shù)のテスト ID を含むリストを使用します。

biz_ids = ['MzU5MjcwMzA4MA==', 'MzI4MzMwNDgwMQ==', 'MzAxMTcyMzg2MA==']

次に、特定の公開アカウントのすべての記事をクロールするスパイダーを作成する必要があります。ここでは、公式アカウントの名前とIDをSpiderに渡し、異なる公式アカウントIDを扱えるようにします。

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()}

Spider の主な機(jī)能は、指定された公式アカウント ID を使用して公式アカウントのホームページにアクセスし、各ページを再帰的に走査してすべての記事の URL を抽出することです。さらに、parse_article メソッドを使用して、後続の処理のために記事の URL とタイトルを抽出します。全體として、このスパイダーはそれほど複雑ではありませんが、抽出速度は遅いです。

最後に、ターミナルで次のコマンドを入力して Spider を起動(dòng)する必要があります:

scrapy crawl wechat -a biz_id=XXXXXXXX

同様に、複數(shù)の公式アカウントをクロールすることもできます。すべての公式アカウントの名前を指定するだけです。コマンド ID のみ:

scrapy crawl wechat -a biz_id=ID1,ID2,ID3
  1. 記事データの保存

記事をクロールした後、記事のタイトルと URL をデータベース (例: MongoDB、MySQL など)。ここでは、pymongo ライブラリを使用してクロールされたデータを保存します。

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

このパイプラインでは、データを保存するバックエンドとして MongoDB を使用します。このクラスは、他のデータベース システムを使用するために必要に応じて変更できます。

次に、settings.py ファイルでデータベース関連のパラメーターを構(gòu)成する必要があります:

MONGO_URI = 'mongodb://localhost:27017/'
MONGO_DATABASE = 'wechat'
ITEM_PIPELINES = {'myproject.pipelines.MongoPipeline': 300}

最後に、Spider で Pipeline を呼び出して、データを 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

上記のコードでは、Response.meta.get('pipeline') を使用して Spider に設(shè)定した Pipeline オブジェクトを取得します。したがって、パイプラインをサポートするには、次のコードを Spider コードに追加するだけです:

yield scrapy.Request(url, callback=self.parse_article, meta={'pipeline': 1})
  1. データ分析

最後に、Scrapy や pandas などのライブラリを使用してデータを?qū)g裝します。分析と可視化。

ここでは、MongoDB からクロールしたデータを抽出し、CSV ファイルに保存します。その後、パンダを使用して CSV ファイルを処理し、視覚化できます。

以下は実裝プロセスです:

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')

上記のコードでは、MongoDB ライブラリと Pandas ライブラリを使用して、クロールされたデータを CSV ファイルのデータ フォルダーに保存します。次に、Pandas の強(qiáng)力なデータ分析機(jī)能を使用して、各公開アカウントの記事數(shù)を視覚的に表示しました。

以上がScrapy は WeChat パブリック アカウント記事のクロールと分析を?qū)g裝しますの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Scrapy は WeChat パブリック アカウント記事のクロールと分析を?qū)g裝します Scrapy は WeChat パブリック アカウント記事のクロールと分析を?qū)g裝します Jun 22, 2023 am 09:41 AM

Scrapy は記事のクローリングと WeChat パブリックアカウントの分析を?qū)g裝します 近年人気のソーシャルメディアアプリケーションである WeChat で運(yùn)用されているパブリックアカウントも非常に重要な役割を果たしています。誰(shuí)もが知っているように、WeChat の公開アカウントは記事、グラフィック メッセージ、その他の情報(bào)を公開できるため、情報(bào)と知識(shí)の海です。この情報(bào)は、メディア報(bào)道、學(xué)術(shù)研究など、さまざまな分野で広く使用できます。そこで、この記事では、Scrapy フレームワークを使用して WeChat パブリック アカウントの記事をクロールおよび分析する方法を紹介します。 Scr

WeChat公式アカウント認(rèn)証と非認(rèn)証の違いは何ですか? WeChat公式アカウント認(rèn)証と非認(rèn)証の違いは何ですか? Sep 19, 2023 pm 02:15 PM

WeChat パブリック アカウント認(rèn)証と非認(rèn)証の違いは、認(rèn)証ロゴ、機(jī)能権限、プッシュ頻度、インターフェイス権限、およびユーザーの信頼にあります。詳細(xì)な紹介: 1. 認(rèn)証ロゴ. 認(rèn)証されたパブリック アカウントは、青い V ロゴである公式認(rèn)証ロゴを取得します. このロゴは、パブリック アカウントの信頼性と権威を高め、ユーザーが本物の公式パブリック アカウントを識(shí)別しやすくします。 ; 2. 機(jī)能の権限: 認(rèn)証されたパブリック アカウントには、非認(rèn)証のパブリック アカウントよりも多くの機(jī)能と権限があります。たとえば、認(rèn)証されたパブリック アカウントは、オンライン決済や商用操作などを?qū)g現(xiàn)するための WeChat 支払い機(jī)能の有効化を申請(qǐng)できます。

AjaxベースのScrapy非同期読み込み実裝方法 AjaxベースのScrapy非同期読み込み実裝方法 Jun 22, 2023 pm 11:09 PM

Scrapy は、Web サイトからデータを迅速かつ効率的に取得できるオープンソースの Python クローラー フレームワークです。ただし、多くの Web サイトでは Ajax 非同期読み込みテクノロジーが使用されているため、Scrapy がデータを直接取得することはできません。この記事では、Ajax 非同期読み込みをベースとした Scrapy の実裝方法を紹介します。 1. Ajax 非同期ロードの原則 Ajax 非同期ロード: 従來(lái)のページロード方法では、ブラウザがサーバーにリクエストを送信した後、サーバーが応答を返してページ全體をロードするまで待ってから、次のステップに進(jìn)む必要があります。

悪質(zhì)なケース分析: LinkedIn で企業(yè)情報(bào)をクロールする方法 悪質(zhì)なケース分析: LinkedIn で企業(yè)情報(bào)をクロールする方法 Jun 23, 2023 am 10:04 AM

Scrapy は、インターネット上の関連情報(bào)を迅速かつ簡(jiǎn)単に取得できる Python ベースのクローラー フレームワークです。この記事では、Scrapy のケースを使用して、LinkedIn で企業(yè)情報(bào)をクロールする方法を詳細(xì)に分析します。ターゲット URL を決定する まず、ターゲットが LinkedIn 上の企業(yè)情報(bào)であることを明確にする必要があります。したがって、LinkedIn の企業(yè)情報(bào)ページの URL を見つける必要があります。 LinkedIn Web サイトを開き、検索ボックスに會(huì)社名を入力し、

Scrapy 最適化のヒント: 重複 URL のクロールを減らし、効率を向上させる方法 Scrapy 最適化のヒント: 重複 URL のクロールを減らし、効率を向上させる方法 Jun 22, 2023 pm 01:57 PM

Scrapy は、インターネットから大量のデータを取得するために使用できる強(qiáng)力な Python クローラー フレームワークです。ただし、Scrapy を開発する場(chǎng)合、重複した URL をクロールするという問題が頻繁に発生します。これは、多くの時(shí)間とリソースを無(wú)駄にし、効率に影響を與えます。この記事では、重複 URL のクロールを減らし、Scrapy クローラーの効率を向上させるための Scrapy 最適化テクニックをいくつか紹介します。 1. Scrapy クローラーの start_urls 屬性と allowed_domains 屬性を使用して、

Scrapy の詳細(xì)な使用法: HTML、XML、および JSON データをクロールする方法? Scrapy の詳細(xì)な使用法: HTML、XML、および JSON データをクロールする方法? Jun 22, 2023 pm 05:58 PM

Scrapy は、インターネット上のデータを迅速かつ柔軟に取得するのに役立つ強(qiáng)力な Python クローラー フレームワークです。実際のクローリングのプロセスでは、HTML、XML、JSON などのさまざまなデータ形式に遭遇することがよくあります。この記事では、Scrapyを使用してこれら3つのデータ形式をそれぞれクロールする方法を紹介します。 1. HTML データをクロールして Scrapy プロジェクトを作成する まず、Scrapy プロジェクトを作成する必要があります。コマンドラインを開き、次のコマンドを入力します:scrapys

Scrapy クローラーでの Selenium と PhantomJS の使用 Scrapy クローラーでの Selenium と PhantomJS の使用 Jun 22, 2023 pm 06:03 PM

Scrapy クローラーでの Selenium と PhantomJS の使用 Scrapy は、Python 上の優(yōu)れた Web クローラー フレームワークであり、さまざまな分野のデータ収集と処理に広く使用されています。クローラーの実裝では、特定の Web サイトが提供するコンテンツを取得するためにブラウザーの操作をシミュレートする必要がある場(chǎng)合があり、この場(chǎng)合には Selenium と PhantomJS が必要になります。 Selenium はブラウザ上で人間の操作をシミュレートし、Web アプリケーションのテストを自動(dòng)化します。

Scrapy を使用して Douban の書籍とその評(píng)価とコメントをクロールする方法は? Scrapy を使用して Douban の書籍とその評(píng)価とコメントをクロールする方法は? Jun 22, 2023 am 10:21 AM

インターネットの発展に伴い、人々は情報(bào)を得るためにますますインターネットに依存するようになりました。本好きにとって、Douban Booksは欠かせないプラットフォームとなっています。さらに、Douban Books では、書籍の評(píng)価やレビューも豊富に提供されており、読者が書籍をより包括的に理解できるようになります。ただし、この情報(bào)を手動(dòng)で取得することは、干し草の山から針を見つけることに似ており、現(xiàn)時(shí)點(diǎn)では、Scrapy ツールを使用してデータをクロールできます。 Scrapy は、Python をベースにしたオープンソースの Web クローラー フレームワークであり、効率的に役立ちます。

See all articles