DOnations]の一部として寄付を受け取りましたプログラム。前書きTwitterボットは、ソーシャルメディアを管理し、マイクロブログネットワークから情報を抽出する強力な方法です。Twitterの汎用APIを活用することにより、ボットは、ツイート、リツイート、「お気に入りツイート」、特定の関心を持つ人々のフォロー、自動返信など、多くのことを実行できます。人々はボットの力を悪用し、他のユーザーにマイナスの体験をもたらす可能性がありますが、調査によれば、人々はTwitterボットを信頼できる情報源と見なしています。ボットを使用すると、あなたがオンラインでないときでもフォロワーをコンテンツに引き付けることができます。[@EarthquakesSF]のような重要かつ有用な情報を提供します。ボットのアプリケーションは無限です。[全ツイートの24%]を占めていると推定されています。APIライブラリ]を使用してTwitterボットを構築します。TwitterアカウントのAPIキーを使用して、ボットを認証し、2つのWebサイトからコンテンツをスクレイピングできるを構築します。これら2つのWebサイトのコンテンツを、設定された時間間隔で交互にツイートするようにボットをプログラムします。3を使用することに注意してください。前提条件このチュートリアルを完了するには、次のものが必要です。3のローカルプログラミング環境をインストールおよび設定する方法]。[Sublime]など、選択したテキストエディターをインストールしてください。APIキーへのアクセスボットのコーディングを開始する前に、ボットのリクエストを認識するためにTwitterのAPIキーが必要になります。この手順では、Twitter開発者アカウントを設定し、TwitterボットのAPIキーにアクセスします。[developer.twitter.com]に移動し、ページの右上にある[適用]をクリックして、ボットアプリケーションをTwitterに登録します。次に、[開発者アカウントに適用]をクリックします。次に、[続行]をクリックして、このチュートリアルで作成するボットアプリケーションにTwitterユーザー名を関連付けます。[ボットとのTwitterユーザー名の関連付け]次のページでは、このチュートリアルの目的で、個人教育用のボットを構築するため、[個人使用のためのアクセスをリクエストしています]オプションを選択します。API個人使用]*アカウント名*と*国*を選択したら、次のセクションに進みます。*どのようなユースケースに興味がありますか?*の場合は、*ツイートの公開とキュレーション*および*学生プロジェクト/コード化の学習*オプションを選択します。これらのカテゴリは、このチュートリアルを完了する理由を最もよく表しています。[Twitterボットの目的]次に、構築しようとしているボットの説明を入力します。Twitterは、ボットの悪用から保護するためにこれを必要とします。2018年に彼らはそのような審査を導入しました。Blog]から技術に焦点を当てたコンテンツをスクレイピングします。*ボックスに入力する内容を決定するとき、このチュートリアルの目的のために、次の行で回答をモデル化します。Stack)やblog.coursera.org(Courseraのブログ)などのWebサイトからコンテンツをスクレイプし、それらから引用をツイートするTwitterボットを作成するチュートリアルを進めています。スクレイピングされたコンテンツは集約され、Pythonジェネレーター関数を介してラウンドロビン方式でツイートされます。Intent]次に、Twitterの利用規約に同意し、[アプリケーションを送信]をクリックして、メールアドレスを確認します。このフォームを送信すると、Twitterから確認メールが送信されます。メールを確認すると、お申し込みプロセスのフィードバックフォームを含む[審査中のお申し込み]ページが表示されます。レビューに関してTwitterから別のメールを受け取ります。[アプリケーションレビューメール]Twitterのアプリケーションレビュープロセスのタイムラインは大幅に異なる場合がありますが、多くの場合、Twitterは数分以内にこれを確認します。アプリケーションのレビューにこれより時間がかかる場合は珍しくありません。1〜2日以内にレビューを受け取る必要があります。確認を受け取ると、Twitterはキーの生成を許可します。developer.twitter.com/appsでアプリの詳細ボタンをクリックした後、*キーとトークン*タブでこれらにアクセスできます。通常、傾向の分析、データマイニングなどの研究目的で読み取り専用モードを使用します。最後のオプションでは、チャットボットはダイレクトメッセージへのアクセスを必要とするため、ユーザーはチャットボットを既存のアプリに統合できます。[Twitterアプリの権限ページ]Twitterの強力なAPIにアクセスできます。これはボットアプリケーションの重要な部分です。次に、環境をセットアップして、ボットの構築を開始します。ステップ2-Essentialsの構築このステップでは、APIキーを使用してTwitterでボットを認証するコードを記述し、Twitterハンドルを介してプログラムによる最初のツイートを行います。Blog]からコンテンツをスクレイピングするTwitterボットを構築するという目標への道のりの良いマイルストーンとして機能します。定期的にツイートします。最初に、プロジェクトフォルダーとプロジェクトの特定のプログラミング環境を設定します。プロジェクトフォルダーを作成します。mkdirプロジェクトフォルダーに移動します。cd次に、プロジェクト用の新しいPython仮想環境を作成します。venv次に、次のコマンドを使用して環境をアクティブ化します。`(bird-env)`プレフィックスが付加されます。+`というファイルを作成します。credentials.py次のコンテンツを追加し、強調表示されたコードをTwitterのキーに置き換えます。credentials.pyACCESS_TOKEN=''ACCESS_SECRET=''CONSUMER_KEY=''CONSUMER_SECRET=''次に、Twitterにリクエストを送信するためのメインAPIライブラリをインストールします。」のライブラリが必要です。+」はPythonの標準ライブラリの一部であるため、これらのライブラリを個別にインストールする必要はありません。残りのライブラリをインストールするには、Pythonのパッケージマネージャーであるhttps://github.com/pypa/pip[pip]を使用します。ターミナルを開き、プロジェクトフォルダーにいることを確認して、次のコマンドを実行します。+:Webスクレイピングに使用します。twitter:これは、TwitterのサーバーにAPI呼び出しを行うためのライブラリです。+:(自然言語ツールキット)ブログの段落を文に分割するために使用します。+:これを使用して、スクレイプされたブログ投稿全体の一部をランダムに選択します。+:特定のアクションの後に定期的にボットをスリープさせるために使用します。ライブラリをインストールしたら、プログラミングを開始する準備が整いました。次に、ボットを実行するメインスクリプトに資格情報をインポートします。+`という名前を付けます。bot.py実際には、ボットがますます高度になるにつれて、ボットの機能を複数のファイルに分散します。最初に、ボットを認証してAPIキーをテストします。credentialsここで、必要なライブラリをインポートします。いくつかのインスタンスでは、必要なhttps://www.digitalocean.com/community/tutorials/how-to-define-functions-in-python-3[functions]をライブラリからインポートします。`関数を使用して、スクレイプされたWebページの文字列ソースをツリー構造に変換し、ページから関連情報を簡単に抽出できるようにします。」は、キーから認証オブジェクトを構築するのに役立ちます。+」は、Twitterのサーバーとさらに通信するためのメインAPIオブジェクトを構築します。‘punkt’)`は、段落を解析し、それらを小さなコンポーネントにトークン化(分割)するために必要なデータセットをダウンロードします。+」は、英語で書かれた段落を分割するためのコードで後で使用するオブジェクトです。`クラスにAPIキーを渡すことで構築される認証オブジェクトです。oauth)`の行でボットを認証します。`は、アプリケーションの認識に役立ちます。`は、アプリケーションがTwitterとやり取りする際のハンドルを認識するのに役立ちます。+`オブジェクトを使用して、リクエストをTwitterに伝えます。このファイルを保存し、次のコマンドを使用してターミナルで実行します。bot.py出力は次のようになります。これは、認証が成功したことを意味します。[Twitter開発者アカウント]にあるものと確認し、再試行してください。必要なライブラリが正しくインストールされていることを確認してください。+`を使用してインストールします。これで、プログラムで何かをツイートすることができます。+`フラグを付けて入力します。bot.py次に、次のように入力して、アカウント経由でツイートを送信します。bot")ブラウザでTwitterのタイムラインを開くと、タイムラインの上部に、投稿したコンテンツを含むツイートが表示されます。+」と入力して、インタープリターを閉じます。これで、ボットにツイートする基本的な機能が追加されました。有用なコンテンツをツイートするボットを開発するには、次のステップでWebスクレイピングを組み込みます。Blog]からコンテンツをスクレイピングし、このコンテンツをツイート形式のTwitter。通常、ターゲットWebサイトから適切なデータを取得するには、HTML構造を実験する必要があります。このチュートリアルで作成するボットから送信される各ツイートには、選択したWebサイトからのブログ投稿へのリンクと、そのブログからのランダムな引用があります。scrape_coursera()+」という名前を付けます。scrape_coursera()+`関数を追加します。Twitter(auth=oauth)ブログから情報を取得するには、まずCourseraのサーバーに関連するウェブページをリクエストします。get()`関数を使用します。get()`はURLを受け取り、対応するWebページを取得します。get()`の引数として渡します。GETリクエストにヘッダーを指定する必要もあります。これにより、Coureraのサーバーが本物のクライアントとして認識されるようになります。scrape_coursera()+`関数に追加して、ヘッダーを提供します。scrape_coursera():このヘッダーには、特定のオペレーティングシステムで実行されている定義済みのWebブラウザーに関する情報が含まれます。+」と呼ばれます)が実際のWebブラウザーとオペレーティングシステムに対応している限り、ヘッダー情報がコンピューターの実際のWebブラウザーとオペレーティングシステムと一致するかどうかは関係ありません。したがって、このヘッダーはすべてのシステムで正常に機能します。ヘッダーを定義したら、次の強調表示された行を追加して、ブログWebページのURLを指定してCourseraにGETリクエストを行います。`属性を使用して、WebページのHTMLソースコードを評価できます。*オプションを選択し、ブラウザーでWebページを検査したときに表示される値と同じです。`関数も追加しました。`構造を構築できます。この_tree_構造により、Webページのさまざまな部分に簡単にアクセスできます。HTMLソースコードには、特定のツリーのような構造があります。+`タグで囲まれ、その後ネストされます。https://blog.coursera.org+」を開き、ブラウザの開発者ツールを使用してHTMLソースを調べます。*オプションを選択します。ブラウザの下部にウィンドウが表示され、ページのHTMLソースコードの一部が表示されます。[browser-inspect]次に、表示されているブログ投稿のサムネイルを右クリックして調べます。HTMLソースは、ブログのサムネイルが定義されている関連するHTML行を強調表示します。“+`で定義されていることがわかります。+`要素を使用します。これは、ウェブページ。+`要素が必要であることを伝えます。これらの要素自体は必要ありません。それらが指しているリンクのみが必要なので、個々のブログ投稿にアクセスしてコンテンツを取得できます。+`アンカータグの値を使用して、すべてのリンクを抽出します。scrape_coursera()+`関数を呼び出します。bot.py出力には、次のようなURLのhttps://www.digitalocean.com/community/tutorials/understanding-lists-in-python-3[list]が表示されます。+`スクリプトから削除できます。+`の関数を拡張します。tree.xpath('//div[@class="recent"]//div[@class="title"]/a/@href')各リンクを反復処理し、対応するブログ投稿を取得し、投稿からランダムな文を抽出し、対応するURLとともにこの文を引用としてツイートします。ランダムな文の抽出には、次の3つの部分が含まれます。ブログ投稿のすべての段落をリストとして取得します。段落のリストから段落をランダムに選択します。この段落からランダムに文を選択します。ブログ投稿ごとにこれらの手順を実行します。取得するには、リンクのGETリクエストを作成します。ブログのコンテンツにアクセスできるようになったので、次の3つのステップを実行して必要なコンテンツを抽出するコードを紹介します。3つのステップを実行するスクレイピング関数に次の拡張子を追加します。」タグに属していることがわかります。[段落を囲む部分]リストの要素は_literal_段落ではありません。_objects_です。text_content()`メソッドを使用します。comprehension_]設計パターンに従っています。`では、各段落要素_object_のテキストを抽出し、テキストが空でない場合は_list_に保存します。+`モジュールを組み込みます。最後に、この段落からランダムに文を選択する必要があります。このタスクでは、最初に段落を文に分割します。split()`メソッドを使用することです。文は複数のブレークポイントで分割される可能性があるため、これは難しい場合があります。`ライブラリを介して自然言語処理を活用します。+`オブジェクトは、この目的に役立ちます。random.choice()`を呼び出してランダムな文章を抽出します。この文をツイートの引用にしたいので、280文字を超えることはできません。審美的な理由から、大きすぎたり小さすぎたりしない文を選択します。ツイート文の長さは60〜210文字にする必要があることを指定します。random.choice()+`が選択する文は、この基準を満たさない場合があります。適切な文を識別するために、スクリプトは10回試行し、毎回基準をチェックします。ランダムに選択された文が基準を満たすと、ループから抜け出すことができます。確率は非常に低くなりますが、10回の試行内でこのサイズの条件を満たしている文はない可能性があります。この場合、対応するブログ投稿を無視して、次のブログ投稿に進みます。引用する文ができたので、対応するリンクでツイートできます。これを行うには、ランダムにピックアップされた文と対応するブログリンクを含む文字列を生成します。scrape_coursera()+`関数を呼び出すコードは、生成された文字列をTwitterのAPI経由でTwitterに投稿します。次のように関数を拡張します。」ステートメントを実行します。したがって、ループがサイズ条件に適合する文を見つけることができない場合にのみ発生します。次に、関数を再度呼び出して、次のブログリンクのコンテンツを取得します。ループが中断した場合、関数が適切な文を見つけたことを意味します。+`ステートメントを実行せず、関数は単一の_whitespace_で区切られた文とブログリンクで構成される文字列を生成します。scrape_coursera()+`関数の実装はほぼ完了しています。別のWebサイトをスクレイピングするために同様の機能を作成する場合は、Courserのブログをスクレイピングするために記述したコードの一部を繰り返す必要があります。コードの一部の書き直しや重複を避け、ボットのスクリプトがhttps://en.wikipedia.org/wiki/Don%27t_repeat_yourself[DRY]原則(自分自身を繰り返さない)に従うようにするには、識別して抽象化します後で書かれたスクレーパー関数に何度も何度も使用するコードの一部を削除します。関数がスクレイピングしているWebサイトに関係なく、段落をランダムに選択し、この選択した段落からランダムな文を選択する必要があります-これらの機能を別の関数で抽出できます。その後、スクレーパー関数からこれらの関数を呼び出すだけで、目的の結果を得ることができます。」を定義することもできます。+`の定義がスクレーパー関数の定義の前にある必要があります。これにより、最終的に他のスクレーパーに使用できるようになります。extract_paratext()`関数を定義できるようになりました。+`引数として渡され、選択した段落のトークン化された形式を返します。これは、後で文の抽出に使用します。...次に、引数として取得したトークン化された段落から適切な長さ(60〜210文字)のランダムな文を抽出する関数を定義します。