技術資料

スクレイピングのBlockly化 

サーバ構築 

(横井さんの資料を参考に修正部分を追加)

1. サーバのIPアドレス変更 

0)あらかじめ変更前のIPアドレスのサーバーを停止させる

[root@localhost tmp]# systemctl stop sshd.service

 ssh接続の場合、ログアウトしてサーバに接続できないことを確認する

[root@localhost tmp]# exit

ssh root@(前IPアドレス)で↓の表示が出ることを確認する

ssh: connect to host 192.168.0.125 port 22: Connection refused

1)CentOSインストール時のような画面でIPアドレスは変更できないので、代わりに↓のコマンドで編集していく

nmtui 

ここでは矢印キーとEnterで移動•選択ができる

2)Edit Connection を選択し↓の画面へ移動

&attachref(

IPv4のShowを選択
Address には192.168.0.◇◇◇を

Gateway には192.168.0.1

DNS serverにも192.168.0.1を入力
(◇◇◇には2〜255の番号&Airmacに繋がる全てのデバイスと被らないものを選ぶ)
(→ 192.168.0.1 がAirMac自体のアドレス?)

3)下へスクロールし
「Automatically Connect」「Available to all users」にスペースキーでXを入れる

4)OKを選択し、今度は~~~のページに行く
変更内容を反映させるため、一度リセットする
→disabledを選択した後、もう一度選択してenabledにする
(表示ではdisableに戻れば、有効になっている)

&attachref(

5)新しいIPアドレスで再起動

systemctl start sshd.service

(自動化するときはenableを付ける)

systemctl enable sshd.service

DNSの設定 

1)ネットワークの設定を確認する

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp○○○

(→○○○は有線でつないでいる先のポート番号によって変わる) DNS1の部分を↓のように変更する

DNS1=192.168.0.1

(Google?のDNSである4.4.4.4や8.8.8.8であってもOK)

2)変更内容を反映

[root@localhost network-scripts]# service network restart

3)

X. yum関連の問題解決 

centOS7 サーバ(192.168.0.◇◇◇)への接続 

1)コマンドプロンプトで以下を入力

C:\Users\~~~>ssh root@192.168.0.◇◇◇

(初回では先に"yes"を入力)パスワードを入力してログイン
→[root@blockly ~]の表示になる

2)cyber-space_analysis"ディレクトリへ移動

[root@localhost ~]# cd /var/www/html/cyber-space_analysis

→発送支援のPythonファイル編集には主にこのフォルダ内を使う

◎Blocklyに接続するときはこちらを入力

http://192.168.0.◇◇◇/cyber-space_analysis/  ~

→このリンクでBlocklyの作成画面へ飛べる

スクレイピングファイルをサーバー内に送り込む 

scpコマンドを使う(ファイルが置いてあるディレクトリへ移動)

>scp [送るファイル名] root@192.168.0.◇◇◇:[送るディレクトリ先] "

(例)"test.txt"を送りたいとき
→"test.txt"のディレクトリまで移動し

scp test.txt root@192.168.0.◇◇◇:/var/www/html/cyber-space_analysis

ディレクトリ(ここではdic)を送るときは"-r"を付ける

scp -r dic root@192.168.0.130:/opt/mecab/lib/mecab

サーバー内でのスクレイピング検証テスト 

1.idea_graphディレクトリでTextmining.pyを実行し、エラーで足りないモジュールをpip install~で入れていく 

※「No module named 'MeCab'」が出たときはmecab-python3を入れる(Mecabだと赤いエラーが大量発生する)

2.まだMecab本体が入っていないの入れていく 

関連ライブラリのインストール

sudo yum install -y  bzip2 bzip2-devel gcc gcc-c++ git make wget curl openssl-devel readline-devel zlib-devel patch file

作業フォルダを作成して移動

mkdir -p ~/source/mecab
cd ~/source/mecab

ソースをダウンロードして解凍して移動

wget 'https://drive.google.com/ucexport=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE' -O mecab-0.996.tar.gz~
tar zxvf mecab-0.996.tar.gz~
cd mecab-0.996

インストール先フォルダを作成

sudo mkdir -p /opt/mecab

configure(コンパイルのための設定)を実行し、コンパイルしてインストール

./configure --prefix=/opt/mecab --with-charset=utf8 --enable-utf8-only
make
sudo make install

インストールしたmecabの実行ファイル(のあるフォルダ)をパスに追加
bashの場合

echo "export PATH=/opt/mecab/bin:\$PATH" >> ~/.bashrc~
source ~/.bashrc~



※※↓この部分はたぶんやらなくてもOK※※
ipadic(標準辞書)のインストール

作業フォルダを作成して移動
mkdir ~/source/mecab-ipadic
cd ~/source/mecab-ipadic

辞書ファイルを取得して解凍して移動

wget 'https://drive.google.com/uc?
export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM' -O mecab-ipadic-2.7.0-20070801.tar.gz~
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz~
cd mecab-ipadic-2.7.0-20070801~

設定してmakeしてインストール

./configure --with-mecab-config=/opt/mecab/bin/mecab-config --with-charset=utf8
make
sudo make install

~~~

~~~



3.mecabの設定 

scpでC:\Program Files\MeCabにあるdicを/opt/mecab/lib/mecabに送り込む
(ドライブにDELL内のipadicとmecab-ipadic-neologdをアップしておく)

1)scpでドライブにあるdicを/opt/mecab/lib/mecabに送り込む
/opt/mecab/lib/mecab内にipadicがあったら、あらかじめ削除しておく

[root@localhost mecab]# rm -rf ipadic~

↓送る側のコマンドプロンプト

C:\Program Files\MeCab>scp -r dic root@192.168.0.130:/opt/mecab/lib/mecab

2)mecabrc内のdicdirを以下のように変更する

[root@localhost ipadic]# vim /opt/mecab/etc/mecabrc~
dicdir =  /opt/mecab/lib/mecab/dic/mecab-ipadic-neologd~

3)idea_graphまで移動

[root@localhost idea_graph]# cd /var/www/html/cyber-space_analysis/idea_graph/

4)Textmining.pyの110行目あたりのtagger = MeCab.Taggerの()内を以下のようにする

tagger = MeCab.Tagger('-r /opt/mecab/etc/mecabrc')

4.ChromeDriverの導入 

yumリポジトリ作成

[root@localhost idea_graph]# vim /etc/yum.repos.d/google.chrome.repo

新しくできたファイルに以下を記述

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

yum updateを実行(↓がどこかに表示されていたらOK?)

google-chrome                                                                                    
google-chrome/x86_64/primary                                                                     
google-chrome  

Chromeインストール

yum -y install google-chrome-stable

CentOSのクラッシュ対策用とChrome用フォントのインストール

[root@localhost /]# yum install -y libOSMesa google-noto-cjk-fonts

pip用のバージョン確認

[root@localhost /]# google-chrome --version

出てきたバージョンを□□□に入れてpip

[root@localhost /]# pip install chromedriver-binary==□□□

※おそらく赤で「このバージョン番号しかない」みたいな表示が出るので□□□に一番近いバージョンに変えてやり直す

seleniumとpyvirtualdisplayとlxmlをインストール

[root@localhost /]# pip install selenium
[root@localhost /]# pip install pyvirtualdisplay
[root@localhost /]# pip install lxml

5.動作チェック 

1)google検索のトップページに行けるか確認

[root@localhost /]# google-chrome --headless --no-sandbox --dump-dom https://www.google.com/

→ 後ろに--headless等を付けることでCUIベースのCentOSでもGPUなしでアクセスできるようにしている

※おそらく文字が大量に流れてくると思われるが、一番後ろに</script></body></html> があれば、googleトップページのhtml表示版が出てきている感じなのでOK

2)これで準備ができたので、Textmining.pyを起動してスクレイピング

[root@localhost /]# cd /var/www/html/cyber-space_analysis/idea_graph/
[root@localhost idea_graph]# python Textmining.py

↓の実行結果みたいになっていればOK

【検索ワード】
属性データ: 夫婦
任意のキーワード: 指定なし (←指定した場合は指定したワードが入る)
地名データ: 指定しない   (←これらは同ディレクトリ内のkey.txtを編集する)
データフレームの大きさ: 30
発想支援を開始します
Twitterの分析中(1/3)
「夫婦」でスクレイピング中
  0%|                                          | 0/14 [00:00<?, ?it/s] * Serving Flask app "Server" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production 
deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 174-577-420
100%|█████████████████████████████████| 14/14 [00:28<00:00,  2.06s/it]
自然言語処理中
100%|███████████████████████████████████| 3/3 [03:42<00:00, 74.10s/it]
Webの分析中(2/3)
Webのスクレイピング中
100%|███████████████████████████████████| 8/8 [00:08<00:00,  1.02s/it]
自然言語処理中
100%|███████████████████████████████████| 3/3 [00:52<00:00, 17.42s/it]
発想支援3Dグラフの表示(3/3)    

 


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS