日々の記録

日々の記録

やったことを忘れないように。
主にインターンとゲームの記録。

Amebaでブログを始めよう!
有栖川誉ー!!!(断末魔)




可愛いにも程がある
わけがわからない

被ってるやつと同じ顔してるとかなんなのー!!

これまたイベ報酬なのかな?
まあRならすぐ手に入るでしょう〜

前回のはほんっっっっっっっとに馬鹿なことして、数千足りずにランボしか手に入れられなかったんでね!!!
イベ日程はちゃんと記憶しておこうね!!!


今年の正月のと主ミス以外は誉全部居るんだけど、そろそろ主ミスは何らかの方法でGETしたいなぁ〜
正月は来年の元旦に復刻ガチャがありそう。

明日からはマギレコ、fgo、A3同時にやんなきゃなのでちょっと大変だ汗

phpとjavaくらいしか主に使わないんだけど、インターンの関係でちょっとPython触る機会があったので軽く勉強してみたピース

 

 

目的

 

Seleniumのwebdriverっていうのを使うと、ブラウザを開いて任意の言葉で検索したり、そのページのソースを取ってこれたり、スクショを撮ることができるらしい。

なんじゃそれは面白そうじゃんー!?ってことでやってみる。

 

 

 

下準備

 

まずPythonをインストールする。

https://www.python.org/

 

環境変数にPythonを追加するため、一番下のところにチェックを入れて[Install Now]をクリック

特に問題がなければインストールが始まり、すぐ完了する。

 

python --version

を実行して、↑のようにバージョンが表示されていれば成功

 

次に、selenium をインストールする。

pip install selenium

 

最後に、ブラウザに合わせたドラーバーを用意する。

chrome、Firefox、PhantomJSがあるっぽい。(他にもあるのかも??)

今回はPhantomJSでやってみるが、基本的に方法は同じ。

 

PhantomJSはここからダウンロード

http://phantomjs.org/download.html

 

これで下準備は終了。

 

 

 

実際にスクレイピングしてみる

 

 

以下のコードを実行

 

# coding: UTF-8
from selenium
import webdriverdriver = webdriver.PhantomJS()
driver.set_window_size(1024, 768)
driver.get('https://google.com/')
#タイトルを表示
print(driver.title)

 

実行は、コマンドで

python [ファイル名].py

でできる。

"Google"と出てきたら成功。

 

 

 

上記のソースコードを下記のように変更

# coding: UTF-8
from selenium import webdrive
rdriver = webdriver.PhantomJS()
driver.set_window_size(1024, 768)
driver.get('https://google.com/')
#タイトルを表示
print(driver.title)
#スクリーンショットを撮る
driver.save_screenshot('screen.png')
#ブラウザを閉じる
driver.close()

 

同じようにコマンドから実行すると、ソースコードのフォルダに'screen.png'という名前で画像が保存される。

(png以外でも可能みたいだが、pngにしろやって怒られる)

名前にパスをつければそのフォルダに保存される。

 

こんな感じにグーグルのページが出てれば成功。

 

最後に、任意のワードで検索をかけてスクリーンショットを撮る、というのをやってみる。

 

 

# coding: UTF-8
from selenium import webdriver
searchWord = "たまごっち"
user_agent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36'
dcap = {
	"phantomjs.page.settings.userAgent" : user_agent,
    'marionette' : True
}
driver = webdriver.PhantomJS(desired_capabilities=dcap)
driver.set_window_size(1024, 768)
driver.get('https://google.com/')
#検索ワード入力
driver.execute_script("document.getElementById('lst-ib').value = '" + searchWord + "'")
#検索ボタンを探してクリック
driver.find_element_by_name("btnK").click()
#スクリーンショットを撮る
driver.save_screenshot('screen.png')
#ブラウザを閉じる
driver.close()

 

dcapとかuser_agentとかの設定をやらないと、なぜかできなかった…

理由とコレがなんなのかはよくわかってないです汗

 

検索するワードを入れるときにも、

driver.find_element_by_id("ID").send_keys("strings")

コレを使うと何故かエラーに…

原因は今後調べてみます。

 

とにかく、「たまごっち」で検索かけて、そのスクリーンショットを撮る、というのができたわけです。

スクショの一部切り取ったもの。本当は全体が撮れています。

 

 

で、今直接ソース内に検索したいワードを入力していますが、これをコマンドから実行するときに与えるようにしてみます。

 

 

ソースを以下のようにちょっと変更

# coding: UTF-8from
selenium import webdriver
import sys
args = sys.argv
searchWord = args[1]
user_agent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36'
dcap = {
	"phantomjs.page.settings.userAgent" : user_agent,
    'marionette' : True
}
driver = webdriver.PhantomJS(desired_capabilities=dcap)
driver.set_window_size(1024, 768)
driver.get('https://google.com/')
#検索ワード入力
driver.execute_script("document.getElementById('lst-ib').value = '" + searchWord + "'")
#検索ボタンを探してクリック
driver.find_element_by_name("btnK").click()
#スクリーンショットを撮る
driver.save_screenshot('screen.png')
#ブラウザを閉じる
driver.close()

 

import sys 

args = sys.argv 

searchWord = args[1]

この3行を足しただけ。

argsってのはざっくりとしか理解していないんですが、コマンド引数のことらしく、

コマンド引数の1番目に検索したいワードを入れてね~っていう感じです。

というわけで、実行する際には

 

python [ファイル名].py [検索ワード]

 

とします。

実際にやってみると、

 

 

できてますな。

 

同じように、第2引数にはファイル名を設定します。

 

# coding: UTF-8
from selenium import webdriver
import sys
args = sys.argv
searchWord = args[1]
filename = args[2]
user_agent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36' 
dcap = {
	"phantomjs.page.settings.userAgent" : user_agent,
    'marionette' : True
}
driver = webdriver.PhantomJS(desired_capabilities=dcap)
driver.set_window_size(1024, 768)
driver.get('https://google.com/')
#検索ワード入力
driver.execute_script("document.getElementById('lst-ib').value = '" + searchWord + "'")
#検索ボタンを探してクリック
driver.find_element_by_name("btnK").click()
#スクリーンショットを撮る
driver.save_screenshot(filename)
#ブラウザを閉じる
driver.close()

 

 

これで、「にほんごであそぼ」の検索結果のスクリーンショットが、一つ上のimageフォルダ内に保存されました。

 

こうすることで、例えばphpから呼び出して実行すること可能になります。

やってみたいところですがここまででめちゃくちゃ時間がかかってしまったので、それはまた時間のあるときに。

 

 

 

参考にさせていただいたサイト

 

Selenium webdriverよく使う操作メソッドまとめ

 

Pythonをインストールする(for Windows)

 

PythonでSeleniumを使ってスクレイピング (基礎)

一時スコアチャレンジそこそこガチ勢だったんだけど、最近全くやっていなかったので久々にやってみたキラキラ

かつては9億くらいいけたからマ-ァヨユゥッショ-(セッツバンリ語)って気持ちで挑んだら




アレーーーー('ω')三( ε: )三(.ω.)三( :3 )三('ω')

まあ資材5倍のところで挑んだらしょうがないんだけど😓

染色パ楽だけどもはや作業だし腱鞘炎になりかけるから耐久戦と化すのが辛い青スジ



↑過去の栄光(´へωへ`*)

10億いってみたいなぁ〜
メディアさん育ってればイゾーさんならいけるんじゃね!?!?
っていう安易な考えで挑んでみた


ひええええぎりぎり…ガーン

マーリンさん流石すぎる
まあフレンドマーリンだけど(´へωへ`*)



死を覚悟したけど奇跡的に生き残ってた記念のスクショ

メディア、玉藻、フレマーリン、サブにマシュ、ゲオルギウス、三蔵で挑んでみたけど、運が良ければ無理ではないみたい。
ギミックも某お米食べろさんよりわかり易かったし良かったきらきら

てか何気に高難易度クエ初クリア(そもそも初挑戦)したから嬉しいわ〜
育成頑張ろ。孔明さんください。