商品レビュー分析1

顧客の行動(クリック習慣、アクセスの深さ、需要の関連付けなど)や顧客の属性(年齢層、性別、地域など)と比較して、顧客からの肯定的な問い合わせやフィードバックは特に重要です。現時点では、ポジティブな問い合わせには 2 つの方向性があると考えられます。1 つは顧客からの通話を音声からテキストに変換した後のインテリジェントなアーカイブであり、もう 1 つは人間とコンピュータの対話 (ASR またはオンライン テキスト) であり、フィードバックはユーザーの提案、コメント、または質問です。 、など待ってください。

  この記事はフィードバックを分析したものです。1つは、積極的に問い合わせられる情報は社内でしか得られないことが多いこと、もう1つはフィードバック分析も重要な意味を持つことです。個人的な意見ですが、企業の場合はフィードバック分析でユーザーの懸念を理解できる、競合他社の場合は肯定的な情報が得にくいため、相手のユーザーのフィードバックを分析することで相手のことが理解できる、一般の買い物客の場合、商品に対する否定的なレビューはめったにないか、隠蔽されることが多いです。 , 現時点では、他の購入者からフィードバックを取得し、否定的なコメントを特定することで判断することができます(製品に多くの利点がある場合もありますが、詳細があなたにとって受け入れられない可能性があります)。

  著者のアイデアは、特定の Tmall 製品に関するコメントを収集し、レビューに基づいて、異なる仕様の製品間の違い、ユーザーの懸念、製品の問題などを分析することです。

  ステップ: コメント収集 - データ処理 - データ分析

1. コメントテキストを収集する

収集には、クローラー (コメント リンク経由)、コレクター (タコなど) の助けを借りて、Python (selenium、pyautogui) を使用するなど自動化プログラムを作成するなど、さまざまな方法があります。著者はuibotの機能とカスタムプラグインを使用して収集と効率を向上させています~

1.UIbotカスタムプラグイン

    uibot は IE ブラウザをサポートし (他には Google や Firefox も含まれますが、私はまだ試していません)、プラグインは Python をサポートし、カスタマイズされた関数は extend フォルダーに配置され、関連する Python パッケージは lib\ に配置されます。サイトパッケージフォルダー。プラグインが見つからないというメッセージが表示される場合があるため、プラグインを配置した後、uibot を再起動することをお勧めします。著者のカスタム機能は、製品タイトル (正規表現) を検索し、uibot によって収集されたコンテンツを標準化することで、Excel に書き込むのに便利です。

プラグインコード:

def getallwt():
    titles = pygetwindow.getAllTitles()
    return titles
def arrtmall(arr):
    arr1=[]
    arr2=[]
    for i in range(len(arr)):
        for j in range(3):#len(arr[i])
            arr1.append(arr[i][j])
    for i in range(0,len(arr1),3):
            arr2.append(arr1[i:i+3])
    return arr2
def sleeptime(t):
    time.sleep(t)

2. コメントを収集する

このメソッドはまず最初のページのコメントを収集し、次にループで後続のコメントを収集します。

期間中に発生した問題とその解決策:

(1) uibot が「次のページ」要素を見つけた後、それはページの下部に留まるだけで、マウスをクリックすることはできません。解決策は、最初に要素に移動し、次にスクロールをシミュレートしてからクリックすることです。

(2) ページをめくる速度が速すぎると、Tmall のアンチクライミング メカニズム (ポップアップ認証ボックス) が作動します。解決策はプロセスを遅らせることですが、作者は遅延を 5 秒に設定しましたが、確認ボックスは表示されませんでした。

エフェクト画像:99ページ集めました(99まであるようです?)、3つのフィールドはコメント、カテゴリー、購入者です(後で必要に応じて時間も集めることができます)

uibot コード:

title=XX//打开的商品链接浏览器标题
kfExcelWorkBook = Excel.OpenExcel("D:\\tmall评论爬取.xlsx",true)
win=getwindow.getwt(title)
TracePrint win
Window.SetActive({"wnd":[{"cls":"IEFrame","title":win,"app":"iexplore"}]})
tmall = UiElement.DataScrap({"html":{"attrMap":{"parentid":"J_Reviews","tag":"TABLE"},"index":0,"tagName":"TABLE"},"wnd":[{"app":"iexplore","cls":"IEFrame","title":win},{"cls":"Internet Explorer_Server"}]},{"Columns":[],"ExtractTable":1},{"objNextLinkElement":"","iMaxNumberOfPage":5,"iMaxNumberOfResult":-1,"iDelayBetweenMS":1000,"bContinueOnError":false})
// TracePrint tmall
arr=arrtmall1.arrtmall(tmall)
// TracePrint arr
rows = Excel.GetRowsCount(kfExcelWorkBook,"Sheet1")
Excel.WriteRange(kfExcelWorkBook,"Sheet1","A"&rows+1,arr,true)
Excel.Save(kfExcelWorkBook)
// 爬取页数
page=100
c=2
Do While c<=page
    Window.SetActive({"wnd":[{"cls":"IEFrame","title":win,"app":"iexplore"}]})
    Mouse.Hover({"html":[{"aaname":"下一页>>","parentid":"J_Reviews","tag":"A"}],"wnd":[{"app":"iexplore","cls":"IEFrame","title":win},{"cls":"Internet Explorer_Server"}]},10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})
    Mouse.Wheel(1,"down", [],{"iDelayAfter":300,"iDelayBefore":200})
    Mouse.Action({"html":[{"aaname":"下一页>>","parentid":"J_Reviews","tag":"A"}],"wnd":[{"app":"iexplore","cls":"IEFrame","title":win},{"cls":"Internet Explorer_Server"}]},"left","click",10000,{"bContinueOnError":false,"iDelayAfter":300,"iDelayBefore":200,"bSetForeground":true,"sCursorPosition":"Center","iCursorOffsetX":0,"iCursorOffsetY":0,"sKeyModifiers":[],"sSimulate":"simulate"})
    arrtmall1.sleeptime(5)
    tmall = UiElement.DataScrap({"html":{"attrMap":{"parentid":"J_Reviews","tag":"TABLE"},"index":0,"tagName":"TABLE"},"wnd":[{"app":"iexplore","cls":"IEFrame","title":win},{"cls":"Internet Explorer_Server"}]},{"Columns":[],"ExtractTable":1},{"objNextLinkElement":"","iMaxNumberOfPage":5,"iMaxNumberOfResult":-1,"iDelayBetweenMS":1000,"bContinueOnError":false})
    // TracePrint tmall
    arr=arrtmall1.arrtmall(tmall)
    // TracePrint arr
    rows = Excel.GetRowsCount(kfExcelWorkBook,"Sheet1")
    Excel.WriteRange(kfExcelWorkBook,"Sheet1","A"&rows+1,arr,true)
    Excel.Save(kfExcelWorkBook)
    c=c+1
Loop

フォローアップhttps://blog.csdn.net/m0_49621298/article/details/107585855

おすすめ

転載: blog.csdn.net/m0_49621298/article/details/107603652