それはインフレータブル人形を感じるのでしょうか?Pythonはあなたを教えて

それはインフレータブル人形を感じるのでしょうか?Pythonはあなたを教えて

Hack 9月21日

次の記事では、裸豚、著者の紳士から来ています

裸の豚

裸の豚

Pythonの入門チュートリアルの紳士

今日はエキサイティングなプレーをするために行くことができます!

まず、需要の背景

私たちは仕事が開発を開始する前に、実際の開発プロセスの後、我々は、我々は技術的な解決策を議論するために一緒に仕事を始めた、私たちはニーズを理解し、ニーズを説明するためのプロダクトマネージャー(テスト、フロントエンド、バックエンド、プロジェクトマネージャーなど)です。

我々はまた、我々はこのことを行う理由を人々に伝えるためにあるいくつかの小さな機能を実現するための独自のニーズを議論する必要がありますか?我々は、この製品を使用するか、すべての問題を解決したいです。

私たちはしばしば、膨らませて人形の表現パッケージや写真やニュースについての何かを参照してください、しかし、この種のもののいくつかはほとんどいくつかの小さな動画、我々が盗まれた可能性があり、プレイのタッチのように相互に通信していません。実際にはほとんどの学生のように好奇心どのような経験をしgentlemen'm、それはそれは(紳士含む)のように感じているものです最終的に膨らませて人形で知らなかったと信じている紳士はそう?確かに、それはクールとして噂通り?

第二に、機能説明

私はでそれを願っていますので、それは膨らませて人形のように感じているものを経験したが、非常に好奇心していない多くの人々に基づく+分析データ爬虫類ます(次の画像を示し、完成マップ)を伝えるために直感的で、真の道。

第三に、技術的なプログラム

上記の要件や機能を実現するために、我々は、特定の技術的な実装について説明します。

  1. データの分析は東にコメントを要求します

  2. インフレータブル人形東にリクエストのコメントを取得するためにライブラリを使用して、

  3. データ表示に使用するワードクラウド

第四に、技術

:前回の記事では、東日本商品コードとして、今日私たちに言った1263013576オブジェクト、データ解析などの商品が、我々はそれを達成するための詳細な技術的な手順を見てみましょう!

このチュートリアルでは、危険を覚悟で、唯一の学習の交換のためではなく、商業利益のためです!
侵害または悪影響が任意の会社または個人に影響を与える場合は、削除された連絡ください

1.コメントインタフェースを分析し、取得URL

ステップ1:あなたが勉強したい製品を見つけ、東の製品ページを開きます。

ステップ2:私たちは、デバッグウィンドウブラウザを起動するには、マウス(またはF12)で右ページでチェックすることにしました。

第三段階:ブラウザを立ち上げるには、それがデータをロードするためにコメントボタンをクリックして、我々はデータを表示するには、ネットワークをクリックしてください。

ステップ4:私たちはその後、デバッグウィンドウで、コメント通路を使用することができ、URLコメントデータをロードするための要求を探します。


分析上記の4つのステップ、我々はインターフェイスJingdongはコメントデータを得ます。https://sclub.jd.com/comment/productPageComments.actionコールバック= fetchJSON_comment98vv4654& PRODUCTID = 1263013576&スコア= 0&SORTTYPE = 5&ページ= 0&pageSizeを= 10&isShadowSku = 0&1 =折りますか?

productPageComments:製品ページのクチコミを知るためにこの名前を見

データをクロール2.コメント

コメントのURLを取得するためのデータ・インターフェースの後、我々はデータをフェッチするために、書き込みコードに始めることができます。一般的に、我々は最初の成功の後、私たちはどのように多くのクロールを分析することができ、データの一部をつかむしようとします。

前我々はすでにHTTP / S要求、コードを見てみましょう要求を開始するためのライブラリを使用する方法を説明しました

が、印刷のデータ結果に空でしたか?なぜブラウザの要求が成功し、我々のコードは、データを要求しませんでしたか?我々は、抗登るに遭遇していますか?どのようにこのケースを解決するには?

このような状況とブラウザのデバッガウィンドウに戻るの顔の誰もが、パラメータのかもしれないブラウザ要求が我々のコードにないものを運ぶようリクエストヘッダ開始ブラウザ、リクエストヘッダを表示します。

案の定、我々は2つのリクエストヘッダは、ブラウザのヘッダーにある参照のRefererのUser-Agent、その後、我々はそれらを置く、もう一度試して、リクエストヘッダコードに追加!

3.データの抽出

私達はちょうど目の前に置くようにデータ分析をクロール我々は、データ要求は、JSONP JSONクロスドメイン結果として返されfetchJSON_comment98vv4646(、最終的に)JSONデータを取得するために除去します。

データをコピーすることは、JSON JSONフォーマットするツールまたはクリックChromeブラウザのデバッグウィンドウ上にPreviewキーとしても見ることができ、JSONデータcomments値我々はデータを確認したいということです。

私たちは、コンテンツにコメント、時刻、ID、情報のなどのソースを評価し、の1を含め、リスト中の複数のデータの一覧と、各項目は、各コメントの対象とされたコメントの値を分析してみましょうcontentフィールドユーザーの評価は、私たちがページで見るものです。

その後、我々は、コードに各評価を使用してcontentフィールド抽出をし、それをプリントアウト

4.データストレージ

我々はそれらを保存し、データの一般的なフォーマットを保存するために必要なデータを抽出した後、次のとおりです。ファイル、データベース、メモリこれらの三つのカテゴリー。操作は比較的単純な文書であるだけでなく、私たちのその後のデータ分析のニーズを満たすためにので今日、我々は、txtファイル形式としてデータを保存します。

その後、我々は、生成されたファイルの内容を見ることは正しいです

5.バッチクロール

そして、どのようにバッチフェッチで見てみましょうを保存した後、抽出をクロールデータを完了?

ウェブ同級生が知っているかもしれませんでしたが、そこに私たちがしなければならないという特徴があり、それはページングです。ページングとは何ですか?なぜページングのですか?

私たちは実際には、これはページングの使用で、「次へ」、ウェブ閲覧時間などの単語の多くを見ることが、すべてのデータを1時間を表示することは不可能であるため、多くの場合、データをユーザに提示、技術のページングを使用するので、Aページが表示されます。

さんがコメントデータの先頭のURLをロードするために戻ってみましょう:

https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4654&productId=1263013576&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1

我々は二つのパラメータがあるリンクを参照することができます= 0&pageSizeを= 10は、ページはページの現在の数を表し、pageSizeを示しているがどのように各ページの多くは、そのデータベースの制限データに直接二つのデータ。

古いドライバは、これは、ページングパラメータであることがわかりますが、一部の学生は言うだろう:私は古いドライバをしていた場合も、あなたの記事を参照してください?だから、私は、ページング・パラメータを見つける方法をお教えし

製品ページへ東バック、我々は下のページの評価は、ページングボタンことが判明した後、私たちは空のウィンドウの前にデバッグ要求に記録引っ張ってきます。

空の前にレコードを要求した後、我々は赤いボックスに2ページ目を表し、図2、上のデジタルページングボタンをクリックし、デバッグウィンドウの検索に最初のレビューをコピーし、最終的にはリンク要求を発見しました。

その後、我々はクリックしてくださいHeaders2ページのURL要求データを表示します

そして、私たちが評価し、2ページのURL差の評価の最初のページには、どのような比較

ここにも紳士の推測を証明:ページはページの現在の数を示し、pageSizeを各ページの何を示しています。その後、最初のページ= 0、第2ページのページ= 1引き返す:そして、私たちは別の結論を引き出すことができます。いくつかの学生が聞いてきます:なぜ最初のページ1ではありませんが、0、データベースのほとんどは、業界の多くのリストをプログラミング、0からカウントされるので、配列は0からカウントを開始しています。

まあ、ページング後、あなたは限り、我々は各時間増分パラメータはバッチがまだフェッチすることができないページを要求するよう、法律を知っていますか?私たちは、コードを記述する必要があります!

簡単に言うには、変更内容を説明します。

  1. spider_comment参加向上させる方法ページ

    ページは、その後、ページの指定された数をクロール、あなたが動的にURLを変更することができるように、URLプレースホルダに増加します。

  2. 追加batch_spider_commentの方法、サイクル呼び出しspider_commentの方法、暫定的に100をクロールします。

  3. batch_spider_commentの無作為化ループのスリープ時間の設定方法、あまりにも頻繁にブロックされたIPを防ぐクロールとして、ブラウジング中のユーザーをシミュレートすることを意図しています。

テイク完全な後の上昇の結果を確認してください

6.データクリーニング

データが正常にデータを保存した後、我々は、よく知られたサブシソーラス使う単語のためのクリーンな単語に必要jiebaを
最初はjiebaライブラリをインストールすることです:

PIP3 jiebaをインストール


もちろん、ここであなたも無効なデータを避けるために、前置詞無効な単語の一部を排除することができます。

ワードクラウドを生成します7.

私たちは、ワードクラウドを生成するために使用する必要があるnumpymatplotlibwordcloudPillowダウンロードへの最初の、これらのライブラリ。matplotlib画像処理のためのライブラリwordcloudライブラリは、ワードクラウドを生成するために使用されます。

注:font_pathはフォントパスを選択することで、デフォルトのフォントが中国をサポートしていない可能性が設定されていない場合は、紳士は、MacのシステムはのTimes New Roman文字が付属して選択してください!

最終結果:

我々は全体のコードを見て

V.の概要

初心者にやさしい、長いエッセイや記事、テクニカル分析要件の詳細な説明、クロールデータ、データクレンジング、最終的なデータ解析の検討。それは、この記事で学んだことレッツ・要約します。

  1. 分析し、データのロードのURLを特定する方法

  2. ライブラリのヘッダの決意を使用するにはどのように要求のRefererのUser-Agentポケットテクノロジーを

  3. 質量クロールを達成するためのパラメータをページング見つける方法

  4. 提供クローラは、IPブロックされて防ぐ間隔

  5. データ抽出およびファイルに保存

  6. データのセグメンテーションクリーニングの使用jiebaライブラリ

  7. wordcloudワードクラウドを用いて所定の形状を生成します

これは場合、私はあなたが、それを自分で試すことができ、より興味深いケースを探索することは興味深い人物であることを願っての完全なデータ分析であります -

プロジェクトアドレスします。https://github.com/pig6/jd_comment_spider

[終了]

公開された117元の記事 ウォン称賛41 ビュー60000 +

おすすめ

転載: blog.csdn.net/pangzhaowen/article/details/102912555