絶対完全無料ツールの紹介

エンジニア目線のブログです

ubuntu 18.04に python selenium + mysqlclient

まずはpipのインストール色々調べたけど ubuntu 18.04ではpython3を使用したほうがいいみたいなので python3 pip3 basedでインストール 

sudo apt update
 とりあえずアップデート

 

sudo apt install python3-pip
sudo pip3 install --upgrade pip

を実行、pip3が入ったので、それでseleniumとかをインストール

sudo pip3 install selenium

mysqlclientを入れる前にaptでインストール
sudo apt-get install python-dev libmysqlclient-dev

sudo pip3 install mysqlclient

https://www.google.com/chrome/?hl=ja

ここからchromeをダウンロードGUIでクリックでダウンロード時間がかかるときもある。

http://chromedriver.chromium.org/downloads

ここから最新のchromedriverをダウンロード解凍して/bin/に移動
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/
Ubuntuchromeのバージョンが上がったらchromedriverもダウンロードし直してあげないといけない。

完全自動化にしたいのであればリモートでの作業もほしくなるので、そこで詰まった事も共有
vncをいれたいけど。。
ぐぐるとvnc4serverをインストールってなるが、インストールしても画面がxface!?かなにかで全然違う・・・

ubuntuであれば普通に画面共有という機能があるのでそれで十分というより、それしかなかった。

 

ubuntuのスクリーン共有

vnc4serverの方向で進んでいたので、1時間程詰まった。。

 


import time
import MySQLdb
from selenium import webdriver
from selenium.webdriver.support.select import Select

con = MySQLdb.connect(
user='root',
passwd='12345678',
host='192.168.9.224',
db='warehouse')
cur= con.cursor()
sql = "select item_name from t_sales where item_name is not null group by item_name limit 10"
cur.execute(sql)
rows = cur.fetchall()

driver = webdriver.Chrome()
url = 'https://www.google.com/'
driver.get(url)
time.sleep(2)

for row in rows:
print(row[0])
# word = row[0]
search_input = driver.find_element_by_name('q')
search_input.clear()
search_input.send_keys(row[0])
search_input.submit()
time.sleep(2)
driver.quit()
cur.close
con.close

上のソースコードを試して貼り付けて、

python3 mysql.py

を実行してmysqlの接続 seleniumが動いたことを確認できました。

ssh に入って実行してもseleniumは普通には起動しないです。

exportとか使えばいけるかも。。

export DISPLAY=:0 &&を前に実行すればいけました。

export DISPLAY=:0 && python3 mysql.py

2018年頃