ウェブサイトのキーワードランキングの完全自動監視(Python実装)

ウェブサイトのキーワードランキングの完全自動監視(Python実装)

この記事から始めて、プログラム自体の知識について書くことに多くのエネルギーを費やすつもりはありません。結局のところ、これはさまざまな本で見つけることができる内容です。残りの学習は、組み込み関数の使用と、特に pycurl、re、threading などのモジュールの使用方法であり、これらには徐々に慣れていく必要があります。

勉強中に質問がある場合は、この記事のコメント欄に投稿してください。時間があれば、できる限りお答えします。

プログラム要件

少し規模の大きいウェブサイトの場合、SEO の効果を分析したり、Baidu や Google などの動向を把握したりするために、定期的にランキングを監視する必要があるキーワードが多数あることがよくあります。

重要な問題は、データ収集が完全に自動化されているかどうかです。 Google Analytics を頻繁に使用してデータ分析を行っていると、データ分析のニーズが多様であることを感じるでしょう。さまざまな次元の完全なデータを事前に持っている場合にのみ、データ不足に制限されることなく、当初のアイデアに従って分析を行うことができます。 Google Analytics などの優れたツールは、このデータを完全に自動的に収集し、トラフィックの多様な分析を実行するための SEO の基盤を築きます。同様に、分析の自由度を高めたい場合は、できるだけ多くの種類の履歴データを記録する必要があります。これを日常的な作業として実行すると非常に長い時間がかかるため、自動収集が重要になります。

ランキングを監視するための既存の主なソリューションは、商用ソフトウェアの Rank Tracker を使用することですが、理想的とは言えない側面もあります。たとえば、既存のソフトウェアのほとんどには、機能が柔軟でないという問題があります。さらに、最大の欠点の 1 つは、実行するにはグラフィカル インターフェイスを備えたシステムを見つける必要があることです (Java で実装されており、複数のオペレーティング システム バージョンがあるため、必ずしも Windows である必要はありません)。

DIY Python スクリプトの場合は、Linux システムの crontab (システムレベルのスケジュールされたタスク) に配置し、スケジュールされた時間に自動的に実行して生データを収集できます。次に、必要に応じて別のスクリプトを使用して生データを処理し、さまざまな次元で分析を実行します。一般的に必要なのは、Linux システムを搭載した低構成の VPS と、合計 100 行以下の Python コードです (Windows でもこれらを実現できますが、比較的面倒です)。

次に、より具体的なニーズを分析します。ここにいくつかの原則があります:

1. データ量が多すぎてハードディスクに負担がかかる場合(毎日数GBのログを解析するなど)を除き、考えられる限り多くのデータを記録します。分析のニーズは常に変化するため、包括的なデータは準備に役立ちます。

2. 上記と同様に、データ量が極端に多い場合を除き、必ずすべての履歴データを保存してください。大量のデータを扱う場合には、実際の状況に応じて一定期間のデータを保存することも必要です(例えば、最初の 3 年間は毎月コピーを保存し、現在の 1 年間は毎週コピーを保存するなど)。多くの場合、履歴データの比較は非常に重要です。

3. データが非常に単純な場合は、txt を使用して行ごとに保存します。データが比較的単純な場合は、csv を使用して行と列ごとに保存します。データが比較的複雑な場合は、MongoDB などのキー値 NoSQL ストレージの使用を検討できます。データがより複雑な場合は、MySQL などのリレーショナル データベースを使用して保存します。しかし、これらは絶対的なものではなく、実際の状況によって異なります。

現在のニーズでは、キーワードのランキング傾向を監視することが目的であるため、通常は最大で数千個のキーワードを監視すれば十分です。おそらく、ウェブサイトは比較的大きく、数十万のキーワードのランキングを知りたいでしょう。しかし、ランキングの傾向を理解するために、すべてのキーワードをクエリする必要はありません。サンプルとして、その一部をランダムに選択するだけで済みます。

キーワードは多くても数千個しかないため、ランキングデータは 1 日に 1 回記録するのが最適です (安定性を確保するという条件で、Google は 1 つの IP に対して 1 日に 5000 語以上、Baidu は数万語をクエリできます)。また、データ自体は主にキーワード、ランキング、ランディングページのURLなどで構成されており、ファイルサイズが非常に小さいため、データのコピーは毎日保存されます。

データの保存方法としては、一般的に csv を選択することをお勧めします。 Excel スプレッドシート (xls) とまったく同じ方法でデータを保存します。

コードの実装

これらのコードには次のランタイム環境が必要です。

Linux オペレーティング システム

Pythonのサードパーティモジュールpycurl

Python で Web ページをダウンロードする最も簡単な方法は次のとおりです。

urllib2をインポートする

urllib2.urlopen('http://***.com/').read() を印刷します。

urllib2 モジュール自体は優れた機能を備えていますが、pycurl モジュールにはまだまだ及びません。また、少し複雑な操作を行う場合は、urllib2 モジュールよりも pycurl モジュールを使用する方がはるかに便利です。 Pycurl は使いこなさなければならないモジュールの 1 つですが、使い始めるには少々面倒かもしれません。ここでは、便利に使用できるように自分でモジュールを作成しました。

pycurl インポートから *

StringIO、time、random をインポートする

def curl(url, 再試行=False, 遅延=1, **kwargs):

'''基本的な使用法: curl('http://www.xxx.com/') は URL をダウンロードします。

`retry` を True に設定すると、ネットワーク エラーが発生した場合に自動的に再試行されます。

`delay` は再試行間の遅延秒数を設定します。

**kwargs は curl パラメータになります。例:

curl(url, FOLLOWLOCATION=False, USERAGENT='Firefox')

'''

ユーザーエージェントリスト = [

'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6',

'Mozilla/4.0 (互換; MSIE 7.0; Windows NT 5.1)',

'Mozilla/4.0 (互換; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)',

'Mozilla/4.0 (互換; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)',

'Opera/9.20 (Windows NT 6.0; U; en)',

'Mozilla/4.0 (互換; MSIE 5.0; Windows NT 5.1; .NET CLR 1.1.4322)',

'Opera/9.00 (Windows NT 5.1; U; en)',

'Mozilla/4.0 (互換; MSIE 6.0; Windows NT 5.1; en) Opera 8.50',

'Mozilla/4.0 (互換; MSIE 6.0; Windows NT 5.1; en) Opera 8.0',

'Mozilla/4.0 (互換; MSIE 6.0; MSIE 5.5; Windows NT 5.1) Opera 7.02 [en]',

'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20060127 Netscape/8.1',

]

サイズ = len(useragent_list)

ユーザーエージェント = useragent_list[random.randint(0, size-1)]

s = StringIO.StringIO()

c = カール()

c.setopt(NOSIGNAL, True)

c.setopt(FOLLOWLOCATION、True)

c.setopt(MAXREDIRS, 5)

c.setopt(タイムアウト、120)

kwargs のキーの場合:

c.setopt(locals()[キー], kwargs[キー])

c.setopt(URL, URL) を設定します。

c.setopt(WRITEFUNCTION、s.write) 関数は、

'USERAGENT' が kwargs にない場合:

c.setopt(ユーザーエージェント、ユーザーエージェント)

'REFERER' が kwargs にない場合:

c.setopt(リファラー、URL)

一方1:

試す:

c.実行()

壊す

を除外する:

再試行する場合:

時間.スリープ(遅延)

それ以外:

Falseを返す

s.getvalue() を返す

簡易収集に必要なダウンロード機能がこのモジュールに統合されました。ユーザーエージェントのローテーション、自動 301/302 リダイレクト、現在の URL を REFERER として使用する巧妙な方法などです。このモジュールのコードは後でゆっくり理解できますが、今は使い方を知っておく必要があります。

まず、Python スクリプトが配置されているディレクトリに移動し、前のコードを curl.py として保存し、同じディレクトリに新しいファイルを作成して、次のテスト コードを入力します。

# -*- コーディング:utf-8 -*-

インポートカール

print curl.curl('http://g.cn/') #これでWebページがダウンロードされます

#以下はより安全なダウンロード方法です。さまざまな理由により、一般的に安定している Web サイトでも、Web ページを開けない場合があります。

#Web ページのダウンロード エラーが発生した場合、retry が True であれば、Web ページがダウンロードされるまで再試行を続けます。

#delayは再試行間の時間間隔を秒単位で指定します

curl.curl('http://g.cn/', retry=True, delay=1) を印刷します。

#以下ではいくつかの Curl パラメータを使用します。詳細な説明は http://curl.haxx.se/libcurl/c/curl_easy_setopt.html を参照してください。

curl.curl('http://g.cn/', FOLLOWLOCATION=False, COOKIE='mycookie') を印刷します。

原題: ウェブサイトのキーワードランキングの完全自動監視(Python 実装)

キーワード: 完全自動、動的監視、ウェブサイトの制御、キー、単語ランキング、Python、実装、この記事、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化

<<:  SEO最適化に別れを告げ、フォーラムを使ってウェブサイトを宣伝しましょう

>>:  プライベートソーシャルネットワークPathがさらに4000万ドルの資金調達を実施

推薦する

クラウド移行の課題にどう対処するか

急速に変化する運用環境において、データの移動と保存は、ほぼすべての業界のあらゆる規模の企業にとって非...

豆板の商業的救済:「製品」同盟

Douban は成功した製品であると同時に、失敗した製品でもあります。 Douban がユーザー エ...

カマテラはどうですか?ドイツのフランクフルトデータセンタークラウドサーバーの簡単なレビュー

カマテラはどうですか? kamateraドイツはどうですか?カマテラは、ドイツ国内のクラウドサーバー...

gotechperu-$7/KVM/Win/1g メモリ/30g ハードディスク/1T トラフィック/ロサンゼルス

gotechperu は比較的新しいホスティング会社で、3 年の歴史があると主張しています。公式 W...

【最新編集】信頼できる米国cn2 gia vpsのおすすめ、米国vpsレンタル業者のおすすめ!

公式サイト: https://bwh89.net 2004年に設立されたカナダの会社で、ハイエンドで...

ftpit-2 USD/512 MB RAM/10 GB SSD/2 TB トラフィック/シカゴ

FtpIt は 1 月に設立され、これまでほぼ 1 年が経過しました。ニューヨーク、シカゴ、ロサンゼ...

Googleの.searchやその他のトップレベルドメインの申請は業界団体から反対された

北京時間3月20日朝のニュースによると、大手インターネット企業による新しいトップレベルドメイン名の競...

継続的な進歩に向けて協力 - サンフォーと西安テレコムが共同でネットワークセキュリティ研究所を設立

1月8日、「共存、融合、共創」をテーマにした中国電信西安支社のDICTエコロジカルパートナー会議が成...

クラウドネイティブ時代の探究: テクノロジー主導のビジネスアーキテクチャイノベーション

1. はじめにデジタル化の波の中で、クラウドネイティブテクノロジーは企業における急速なイノベーション...

ガートナーは、組織によるクラウド移行の加速がパブリッククラウド支出の急増につながると予測している

[[396264]]分析会社ガートナーが発表した最近の調査および予測データによると、パブリッククラウ...

プロモーションに活用: 検索結果の最初のページに表示されるウェブページを活用して、長期的なプロモーションを行います。

このプロモーション方法の中心的な考え方は、ランク付けされた Web ページを見つけ、それらのページを...

ブランドマーケティング:ブランドロゴとシンボルデザイン

ブランドを識別したい場合、最も早い方法はブランドロゴを見ることです。では、ブランドアイデンティティに...

ソフトコンテンツマーケティングを使用して、オンライン販売に影響を与える内部リスクを排除する

ソフト記事マーケティングは我が国で最も古く、最も専門的なマーケティング手法ですが、オンラインニュース...