微博スパイダー
このプログラムは、 1人以上のSina Weibo ユーザー (Hu Ge、Dilraba、Guo Biting など) のデータを継続的にクロールし、結果の情報をファイルまたはデータベースに書き込むことができます。書き込まれた情報には、ユーザーの Weibo のほぼすべてのデータが含まれており、ユーザー情報とWeibo 情報の2 つのカテゴリが含まれます。内容が多すぎるため、ここでは詳しく説明しません。詳細については、取得されたフィールドを参照してください。ユーザー情報のみが必要な場合は、Weibo ユーザー情報のみをクロールする機能を設定できます。このプログラムは Weibo にアクセスするために Cookie を設定する必要があります。Cookie の取得方法については後述します。 Cookieを設定したくない場合は、同様の機能を備えたCookieなしバージョンを使用できます。
クロール結果はファイルとデータベースに書き込むことができます。具体的な書き込みファイルの種類は次のとおりです。
- txt ファイル(デフォルト)
- csvファイル(デフォルト)
- json ファイル(オプション)
- MySQL データベース(オプション)
- MongoDB データベース(オプション)
- SQLite データベース(オプション)
Weibo からの写真やビデオのダウンロードもサポートしています。具体的にダウンロード可能なファイルは次のとおりです。
- 元のWeibo からの元の画像(オプション)
- Weibo から元の写真を再投稿します(オプション)
- Weibo 上のオリジナルビデオ(オプション)
- Weibo にビデオを再投稿する(オプション)
- オリジナルのWeibo Live Photo内のビデオ(Cookie なしバージョン限定)
- Weibo Live Photoからビデオを再投稿(Cookie なしバージョンに固有)
目次
[目次]
- 微博スパイダー
- 目次
- 取得したフィールド
- 例
- 動作環境
- 使用説明書
- 0.バージョン
- 1. インストールプログラム
- 2. プログラムの設定
- 3. プログラムを実行する
- パーソナライゼーション プログラム (オプション)
- Weibo を定期的に自動的にクロールする (オプション)
- クッキーの入手方法
- user_idの取得方法
- よくある質問
- 学術研究
- 関連プロジェクト
- 貢献する
- 投稿者
- 注意事項
取得したフィールド
このセクションでは、クロールされたフィールド情報について説明します。Cookie なしのバージョンと区別するために、両方でクロールされる情報を以下に示します。情報が Cookie なしバージョンに固有の場合は、Cookie なしとしてマークされ、マークされていない情報は両方に共通です。
ユーザー情報
- ユーザー ID: Weibo ユーザー ID (「1669879400」など) 実際、このフィールドは既知のフィールドです。
- ニックネーム: ユーザーのニックネーム、例: 「Dear-Dilraba」
- 性別: Weibo ユーザーの性別
- 誕生日: ユーザーの生年月日
- 場所: ユーザーの場所
- 学習経験:ユーザーが学校に通ったときの学校名と時間
- 職歴:ユーザーの会社名と勤務時間
- サンシャイン クレジット (Cookie なしバージョン): ユーザーのサンシャイン クレジット
- Weibo 登録時間 (Cookie なしバージョン): ユーザーの Weibo 登録日
- Weiboの数:ユーザーの全Weiboの数(リツイートされたWeibo + オリジナルのWeibo)
- フォロワー数: ユーザーがフォローしている Weibo 投稿の数
- ファン数:ユーザーのファンの数
- はじめに: ユーザープロフィール
- ホームページのアドレス (Cookie なしバージョン): Weibo モバイル版ホームページの URL
- アバター URL (Cookie なしバージョン): ユーザーのアバター URL
- 高精細アバター URL (Cookie なしバージョン): ユーザーの高精細アバター URL
- Weibo レベル (Cookie なしバージョン): ユーザー Weibo レベル
- 会員レベル(Cookieフリー版):Weibo会員ユーザーレベル、一般ユーザーレベルは0
- 認証するかどうか (Cookie なしバージョン): ユーザーが認証されているかどうか、ブール型
- 認証タイプ (Cookie なしバージョン): 個人認証、企業認証、政府認証などのユーザー認証タイプ。
- 認証情報:認証されたユーザーに固有、ユーザー情報欄に表示される認証情報
微博情報
- Weibo id: Weibo のユニークなロゴ
- Weibo コンテンツ: Weibo テキスト
- 見出し記事の URL: Weibo に見出し記事がない場合、値は '' です。
- 元の画像の URL: 元の Weibo 画像と Weibo 転送理由の画像の URL。Weibo 投稿に複数の画像がある場合、各 URL は英語のカンマで区切られます。画像がない場合、値は「」になります。なし"
- ビデオ URL: Weibo 内のビデオ URL。Weibo にビデオがない場合、値は「なし」になります。
- Weiboでの投稿場所:Weiboでの投稿場所
- Weibo 公開時間: Weibo が公開された時間、分単位で正確です。
- 「いいね!」の数: Weibo の「いいね!」の数
- リツイート数:Weiboのリツイート数
- コメント数:Weiboのコメント数
- Weibo 公開ツール: iPhone クライアント、HUAWEI Mate 20 Pro などの Weibo 公開ツール。
- 結果ファイル:カレントディレクトリのweiboフォルダ内のユーザーのニックネームにちなんだフォルダに「user_id.csv」「user_id.txt」の形式で保存されます。
- Weiboの写真:元のWeiboの写真とWeiboの転送理由の写真は、ユーザーのニックネームにちなんで名付けられたフォルダーの下のimgフォルダーに保存されます。
- Weibo ビデオ: Weibo 上のオリジナルビデオ。ユーザーのニックネームにちなんで名付けられたフォルダーの下のビデオフォルダーに保存されます。
- Weibo入札(Cookieフリーバージョン):Cookieフリーバージョンに固有で、このプログラムのWeibo IDと同じ値です
- トピック (Cookie なしバージョン): Weibo トピック、つまり 2 つの # の間にあるコンテンツ。複数のトピックがある場合、各 URL は英語のカンマで区切られます。ない場合、値は '' です。
- @user (Cookie なしバージョン): Weibo @ ユーザー。複数の @ ユーザーがいる場合、各 URL は英語のカンマで区切られます。そうでない場合、値は '' です。
- オリジナル Weibo (Cookie なしバージョン): 転送された Weibo に固有の、転送された Weibo であり、Weibo ID、Weibo コンテンツなど、上記の Weibo 情報のすべての内容が含まれます。 。
例
プログラムの具体的な実行結果を知りたい場合は、Dilireba の Weibo をクロールする例を紹介し、結果ファイルのスクリーンショットを添付したサンプル ドキュメントを参照してください。
動作環境
- 開発言語:python2/python3
- システム: Windows/Linux/macOS
使用説明書
0.バージョン
このプログラムには 2 つのバージョンがあり、現在表示されているのは python3 バージョンで、もう 1 つは python2 バージョンです。python2 バージョンは python2 ブランチにあります。現在、私たちは主に python3 バージョンを開発しており、新機能の開発とバグ修正が含まれています。python2 バージョンはバグ修正のみをサポートしています。 python3をお使いの方は現行バージョンを、python2をお使いの方はpython2バージョンをご利用いただくことをお勧めします。 本取扱説明書はpython3版を対象としています。
1. インストールプログラム
このプログラムは 2 つのインストール方法を提供します。1 つはソース コード インストール、もう 1 つはpip インストールで、どちらもまったく同じ機能を持ちます。ソース コードを変更する必要がある場合は、最初の方法を使用することをお勧めします。それ以外の場合は、任意のインストール方法を選択できます。
ソースコードのインストール
$ git clone https://github.com/dataabc/weiboSpider.git
$ cd weiboSpider
$ pip install -r requirements.txt
ピップのインストール
$ python3 -m pip install weibo-spider
2. プログラムの設定
プログラム設定について詳しくは、プログラム設定のドキュメントを参照してください。
3. プログラムを実行する
ソース コードをインストールするユーザーは、weiboSpider ディレクトリで次のコマンドを実行できます。 pip をインストールするユーザーは、書き込み権限のある任意のディレクトリで次のコマンドを実行できます。
$ python3 -m weibo_spider
初回実行時はカレントディレクトリにconfig.json設定ファイルが自動作成されます。設定後、同じコマンドを実行してWeiboを取得します。
すでに config.json ファイルがある場合は、config_path パラメーターを使用して config.json パスを構成し、プログラムを実行することもできます。コマンド ラインは次のとおりです。
$ python3 -m weibo_spider --config_path= " config.json "
ファイル (csv、txt、json、画像、ビデオ) の保存パスを指定する場合は、output_dir パラメーターを使用して設定できます。ファイルを /home/weibo/ ディレクトリに保存する場合は、次のコマンドを実行できます。
$ python3 -m weibo_spider --output_dir= " /home/weibo/ "
コマンドラインから user_id を入力する場合は、パラメータ u を使用します。各 user_id をカンマで区切って入力できます。これらの user_id の間に重複する user_id がある場合、プログラムは重複したものを自動的に削除します。コマンドラインは次のとおりです。
$ python3 -m weibo_spider --u= " 1669879400,1223178222 "
このプログラムは、user_id が 1669879400 と 1223178222 である Weibo ユーザーを取得します。user_id の取得方法については後ほど説明します。このメソッドのすべての user_id は、config.json の think_date と end_date を使用して設定され、クロールの時間範囲はそれらの値を変更することで制御できます。 config.json の user_id_list がファイル パスの場合、各コマンド ラインの user_id はファイルに自動的に保存され、since_date がパスでない場合、user_id は現在のディレクトリの user_id_list.txt に保存されます。と自動的に更新されます。現在のディレクトリに user_id_list.txt が存在しない場合は、プログラムが自動的に作成します。
パーソナライゼーション プログラム (オプション)
このセクションはオプションであり、プログラムをカスタマイズしたり、新しい機能を追加したりする必要がない場合は無視できます。
このプログラムのメイン コードは weibo_spider.py ファイルにあります。プログラムの本体は Spider クラスです。デフォルトの呼び出しコードは次のとおりです。
config = get_config ()
wb = Spider ( config )
wb . start () # 爬取微博信息
ユーザーは、必要に応じて Spider クラスを呼び出したり変更したりできます。このプログラムを実行すると、多くの情報を得ることができます。
クリックして詳細を表示
- wb.user['nickname']: ユーザーのニックネーム。
- wb.user['gender']: ユーザーの性別;
- wb.user['location']: ユーザーの場所;
- wb.user['birthday']: ユーザーの生年月日;
- wb.user['description']: ユーザープロフィール。
- wb.user['verified_reason']: ユーザー認証;
- wb.user['talent']: ユーザーラベル;
- wb.user['education']: ユーザーの学習経験;
- wb.user['work']: ユーザーの職歴;
- wb.user['weibo_num']: Weibo 番号;
- wb.user['following']: フォローしている人の数;
- wb.user['フォロワー']: ファンの数;
wb.weibo : 上記の情報を除き、wb.weibo には、 Weibo ID 、 Weibo テキスト、元の画像 URL 、公開場所、公開時間、公開ツール、いいね数、リツイート数、リツイート数など、クロールされたすべての Weibo 情報が含まれます。コメントなどすべての Weibo (オリジナル + 転送) をクロールしている場合、上記の情報に加えて、転送された Weibo の元の画像 URL 、オリジナル Weibo であるかどうかなども含まれます。 wb.weibo は、クロールされたすべての Weibo 情報を含むリストです。 wb.weibo[0] は最初にクロールされた Weibo、wb.weibo[1] は 2 番目にクロールされた Weibo などです。 filter=1 の場合、wb.weibo[0] が最初にクロールされたオリジナルWeibo になります。 wb.weibo[0]['id'] は最初の Weibo の ID、wb.weibo[0]['content'] は最初の Weibo のテキスト、wb.weibo[0]['publish_time' ] はWeibo の最初の投稿の公開時間など、他にも多くの情報がありますが、詳細は説明しません。具体的な使用方法については、下の「詳細」をクリックしてください。
詳細
対象の Weibo ユーザーが Weibo 上に存在する場合、次のようになります。
- id: Weibo ID を保存します。たとえば、wb.weibo[0]['id'] は最新の Weibo の ID です。
- content: Weibo の本文を保存します。たとえば、wb.weibo[0]['content'] は最新の Weibo 投稿のテキストです。
- Article_url: Weibo のヘッドライン記事の URL を格納します。たとえば、wb.weibo[0]['article_url'] は、Weibo の最新のヘッドライン記事の URL です。Weibo にヘッドライン記事がない場合、値は '';
- original_pictures: 元の Weibo の元の画像 URL と Weibo 転送理由の画像 URL を格納します。たとえば、wb.weibo[0]['original_pictures'] は、Weibo に複数の写真がある場合、複数の URL が英語のカンマで区切られて保存されます。値は「なし」です。
- retweet_pictures: リツイートされた Weibo 内の元の画像の URL を保存します。最新のWeiboがオリジナルのWeiboまたは写真のない転送されたWeiboである場合、値は「なし」であり、そうでない場合は、転送されたWeiboの画像URLです。複数の画像がある場合は、複数の URL がカンマで区切られて保存されます。
- public_place: Weibo の公開場所を保存します。たとえば、wb.weibo[0]['publish_place'] は最新の Weibo の公開場所です。Weibo に位置情報がない場合、値は「なし」になります。
- public_time: Weiboの公開時間を格納します。たとえば、wb.weibo[0]['publish_time'] は最新の Weibo の公開時刻です。
- up_num: Weibo で取得したいいねの数を格納します。たとえば、wb.weibo[0]['up_num'] は、最新の Weibo 投稿で取得された「いいね!」の数です。
- retweet_num: Weiboで取得したリツイート数を格納します。たとえば、wb.weibo[0]['retweet_num'] は、最新の Weibo によって受信されたリツイートの数です。
- comment_num: Weiboで取得したコメント数を格納します。たとえば、wb.weibo[0]['comment_num'] は、最新の Weibo で受信したコメントの数です。
- publish_tool: Weibo 用のストレージ公開ツール。たとえば、wb.weibo[0]['publish_tool'] は最新の Weibo の公開ツールです。
Weibo を定期的に自動的にクロールする (オプション)
プログラムが一定期間ごとに自動的にクロールするようにし、クロールされるコンテンツが新しく追加されたコンテンツ (既に取得されている Weibo を除く) である場合は、「Weibo を定期的に自動的にクロールする」にチェックを入れてください。
クッキーの入手方法
Cookie の取得方法については、Cookie のドキュメントを参照してください。
user_idの取得方法
user_id を取得する方法については、1 人以上の Weibo ユーザーの user_id を取得する方法が説明されている user_id ドキュメントを参照してください。
よくある質問
プログラムの実行中にエラーが発生した場合は、最も一般的な問題と解決策が記載された FAQ ページを表示できます。発生したエラーが FAQ にない場合は、問題を送信してサポートを求めることができます。喜んで回答させていただきます。
学術研究
このプロジェクトは、論文執筆や研究などの非営利プロジェクトに必要なデータを提供するために Weibo データを取得します。学術研究資料とは、プログラムを論文や研究等で利用したものであり、所有者の許可を得て掲載しています。一部のプライバシー関連の説明については所有者と協議しており、説明では所有者が表示を許可した部分のみを紹介しています。一部の情報の所有者が以前に表示することに同意し、文書に記載したが、現在は表示したくない場合は、電子メール([email protected])またはメッセージで私に知らせてください。関連する情報は削除します。情報。同時に、このプロジェクトを利用して論文を書いたり、その他の学術研究を行ったりする友人も、その研究結果を学術研究文書に掲載することを歓迎します。これは完全に任意です。
便宜上、このプロジェクトの bibtex エントリは次のように提供されています。
@misc{weibospider2020,
author = {Lei Chen, Zhengyang Song, schaepher, minami9, bluerthanever, MKSP2015, moqimoqidea, windlively, eggachecat, mtuwei, codermino, duangan1},
title = {{Weibo Spider}},
howpublished = {url{https://github.com/dataabc/weiboSpider}},
year = {2020}
}
関連プロジェクト
- weibo-crawler - 機能はこのプロジェクトとまったく同じですが、Cookie を追加したり、より多くの Weibo 属性を取得したりすることはできません。
- weibo-search - 1 つ以上のWeibo キーワード検索結果を継続的に取得し、結果をファイル (オプション)、データベース (オプション) などに書き込むことができます。いわゆる Weibo キーワード検索とは、テキスト内に指定したキーワードを含む Weibo を検索することを意味し、検索時間範囲を指定できます。非常に人気のあるキーワードの場合、1 日で1,000 万件以上の検索結果が得られ、N 日で 1,000 万件の XN 検索結果が得られることがあります。ほとんどのキーワードについて、1 日に生成される対応するマイクロブログの数は 1,000 万未満であるため、プログラムはほとんどのキーワードのすべてまたはほぼすべての検索結果を取得できると言えます。また、このプログラムは検索結果のすべての情報を取得することができ、このプログラムで取得したWeibo情報もこのプログラムで取得することができます。
貢献する
このプロジェクトへの貢献を歓迎します。貢献には、コードを送信すること、問題を通じて提案 (新機能、改善計画など) を行うこと、または課題を通じてプロジェクトのバグや欠点などについて知らせることがあります。具体的な貢献方法については、「これに貢献する」を参照してください。プロジェクト。
投稿者
このプロジェクトに貢献してくれたすべての友人に感謝します。貢献者の詳細については、貢献者ページをご覧ください。
注意事項
- user_id をクローラー Weibo の user_id にすることはできません。 Weibo 情報をクロールするには、まず Weibo アカウントにログインする必要があるため、このアカウントを Weibo クローラーと呼びます。クローラー Weibo が自分のページにアクセスする場合と他のユーザーのページにアクセスする場合、取得される Web ページの形式が異なるため、自分の Weibo 情報をクロールすることはできません。クローラー Weibo コンテンツをクロールしたい場合は、「自分の Weibo を取得する」を参照してください。情報;
- Cookie の有効期限は約 3 か月です。 Cookie が間違っているか、期限切れであることを示すメッセージが表示された場合は、Cookie を再度更新する必要があります。