月別アーカイブ: 2016年6月

Googlebot かどうかの確認

サイトにどのくらいクローラーがきてるのか?
ってのは、サーチコンソールである程度わかるけど
どのページに?どの階層配下に?っていう詳細になると
アクセルログを解析する必要が、、、

でも、ログの何を見ればいいのか?

一番単純なのは、UAに「googlebot」とかの文字列で判断、、、
でもUAなんていくらでも偽装できるし、なんか
偽ボットに悩まされてるなんて記事もあったりして
UAで判断するのはベストではないと思われる

そんな中、こんなページを発見!
Googlebot かどうかの確認

ログに書かれてるIPから、hostコマンドでhost名を取得して
googlebot.comまたはgoogle.comであることを確認。
そしたら、host名から今度はIPを取得して、そのIPが元のIPと
等しければ、そのアクセスはGooglebotだ~!

GoogleがGooglebotをこう見分けろというのだから間違いないw

これをpythonでやる場合のサンプル

-- coding: utf-8 --

import socket
import sys

hostname => IP

print(socket.gethostbyname(hostname))

IP => hostname

print(socket.gethostbyaddr(ip))

pythonで検索アナリティクスAPIを試す

Google Search Console(GSC)の検索アナリティクスAPIを試す。
まだまだ解説してるサイトが少ない気がする。。。

環境は、
CentOS7
Python3.5

■ ステップ1:Search Console APIを有効にする

まずは、Google Developers Console にアクセスして
「Google Search Console API」を有効にする。

右サイドバーの[認証情報] > [OAuth同意画面]をクリックして、
[ユーザーに表示するサービス名]に適当なのを入力して
[保存]をクリック!

[認証情報] > [認証情報を作成] > [OauthクライアントID] と進んで
「アプリケーションの種類」に[その他]を選んで[作成]ボタンをクリック

下記2つをメモメモ
 ・クライアント ID
 ・クライアント シークレット

JSONはダウンロードしておく

■ ステップ2:Google Client Libraryをインストール
pip install –upgrade google-api-python-client
もしくは
easy_install –upgrade google-api-python-client

■ ステップ3:サンプルクエリ実行
samples repositoryよりsearch_analytics_api_sample.pyを取得

JSONファイルを、client_secrets.json というファイル名にして
上記ファイルと同じ階層に配置

search_analytics_api_sample.py を開き、client_id、client_secretを
先ほど取得した値に変更

プログラムが恐らくpython3に対応していないので修正。
・print してるところはカッコで括ってあげる。いくつかあるので全て修正
 例)
 修正前: print title + ‘:’
修正後: print(title + ‘:’)

・python詳しくないので詳細不明だけど、文字コード関連の扱いが変わってるので修正
修正前: keys = b’,’.join(row[‘keys’]).encode(‘utf-8’)
修正後: keys = ‘,’.join(row[‘keys’])

ファイルを実行!
python search_analytics_api_sample.py https://www.example.com 2015-05-01 2015-05-30

init() takes at most 4 positional arguments (5 given)
Go to the following link in your browser: https://accounts.google.com/o/oauth2/v2/auth?access_type=xxxx
Enter verification code:

こんなメッセージが出てくるので、いわれるがまま
書いてあるURLにアクセスすると

「このコードをコピーし、アプリケーションに切り替えて貼り付けてください」
みたいなページが表示されるので、コードをコピペしてエンター!

無事成功!

word2vec を wikiデータを使って検証してみる

言葉の足し算やら引き算やらができるという
word2vecとやらを試してみたよ!

・下準備

まずは、こちらのサイトからwikiのデータを取得
wget https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
約20分くらいかな

次に、落としてきたデータがxml形式なので、
こちらをテキスト形式に変換するためにwp2txtというのを使用するのだけど
wp2txtをインストールするためにrubyの環境を用意

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
mkdir ~/.rbenv/plugins
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

.bashrcなどに
export RBENV_ROOT=”~/.rbenv”
export PATH=”${RBENV_ROOT}/bin:${PATH}”
eval “$(rbenv init -)”

設定を反映
source .bashrc

必要なモジュールをインストールしておく
yum install -y readline-devel openssl-devel

こちらでインストール可能なバージョンが確認できるので
rbenv install -l

rbenv install 2.2.0
rbenv rehash
rbenv global 2.2.0

確認
rbenv versions

これでruby環境が整った(はず)!

wp2txtのインストール
gem install wp2txt

そしてテキストに変換
wp2txt –input-file jawiki-latest-pages-articles.xml.bz2
1時間くらい