<Python, selenium> マウスホバーのやり方
セレニウムselenium
でマウスホバーmouse hover
する方法。
まずは、selenium
起動して、東京アメッシュ
に行ってみる。
In [1]: from selenium import webdriver In [2]: from selenium.webdriver.chrome.options import Options In [3]: options = Options() In [4]: options.add_argument('--wndow-size=800,600') In [6]: d = webdriver.Chrome(chrome_options=options) In [7]: url = 'http://tokyo-ame.jwa.or.jp/' In [8]: d.get(url)
で、マウスホバーしたところのxpath
を探す。
1... F12
に押す。
2... 1
の部分を押す。
3... ターゲットの2
を押す。
4... 3
に行く。
5... マウス右クリックでメニューを出して、4
のCopy Xpath
をゲット。
で、ゲットしたxpath
。
In [9]: xpath= '//*[@id="area_button"]/ul/li[8]/a/img'
で、マウスホバーするためのオブジェクト読み込み。
In [10]: from selenium.webdriver.common.action_chains import ActionChains In [11]: actions = ActionChains(d)
で、ホバー。
In [12]: actions.move_to_element(d.find_element_by_xpath(xpath)).perform()
ちなみに、xpath
で指定するのは、タグtag
内のアトリビュートattribute
。
いろいろ選べる。
In [14]: xpath = '//*[@id="moviePlay"]' In [15]: xpath = '//*[@name="play"]' In [16]: d.find_element_by_xpath(xpath).click() In [21]: xpath = '//*[text()="TEAM BEYOND"]' In [22]: actions.move_to_element(d.find_element_by_xpath(xpath)).perform() In [23]: d.quit()
<Python> ファイル名のリスト + 時刻でソート(その2)
検索したら過去に同じことをやってたが、せっかくなので、メモっておく。
ファイル名のリストlist
を時刻time
でソートsort
する。
In [4]: ls ドライブ C のボリューム ラベルは Windows8_OS です ボリューム シリアル番号は 1679-D852 です C:\msys64\home\Nekoyuki\tmp\tmp のディレクトリ 2018/02/24 11:16 <DIR> . 2018/02/24 11:16 <DIR> .. 2018/02/24 11:15 1 aaa.txt 2018/02/24 11:15 1 bbb.txt 2018/02/24 11:15 1 ccc.txt 2018/02/24 11:16 1 ddd.txt 2018/02/24 11:15 1 fff.txt 5 個のファイル 5 バイト 2 個のディレクトリ 67,190,915,072 バイトの空き領域 In [5]: import glob In [6]: import os In [7]: glob.glob('{}/*'.format(os.getcwd())) Out[7]: ['C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\aaa.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\bbb.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ccc.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\fff.txt'] In [8]: lst = glob.glob('{}/*'.format(os.getcwd())) In [9]: [i for i in lst if 'ddd' in i] Out[9]: ['C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt'] In [10]: [i for i in lst if 'ddd' in i][0] Out[10]: 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt' In [11]: os.path.getctime([i for i in lst if 'ddd' in i][0]) Out[11]: 1519438562.2302387 In [12]: lst.sort(key=lambda x: os.path.getctime(x)) In [13]: lst Out[13]: ['C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\aaa.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\bbb.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ccc.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\fff.txt', 'C:\\msys64\\home\\Nekoyuki\\tmp\\tmp\\ddd.txt'] In [14]: [ os.path.getctime(i) for i in lst] Out[14]: [1519438541.031442, 1519438544.5682108, 1519438548.668558, 1519438556.8538623, 1519438562.2302387] In [15]: [os.path.basename(i) for i in lst] Out[15]: ['aaa.txt', 'bbb.txt', 'ccc.txt', 'fff.txt', 'ddd.txt']
<Windows> スクリーンキャプチャ
gif
で、スクリーンキャプチャは、何かいいツールでもあるのかいなと検索したらあった。
<Python> 相対パス + ipythonでエラー
下記のようなファイル構成をとっていて、、
% tree hage hage ├── __init__.py └── main.py ├── hige │ ├── __init__.py │ └── core.py 1 directory, 4 files
で、main.py
で、
from hige.core import *
として、インポートする。
この場合は、ipython
で、run main.py
は問題なく動く。
が、pip
でインストールする場合、こける。
が、相対パスでインポートする記述の場合、 つまり、
from .hige.core import *
とすると、
ipython
でのrun main.py
はこけるが、
pip
インストールは成功する。
どっちもうまくならんもんか?、、 と思っていたら、
いつものスタックさんに回答があった。
下記でうまくいった。
try: from .hige.core import * except Exception: from hige.core import *
いつも助かるスタックオーバーフローさん。
stackoverflow.com
<Python> listから空のものを除く
list
から、空つまり、"
のものを除く。
リスト内包表記
を使えば一発。
リスト作成。
In [1]: aaa = ''' ...: aaa ...: bbb ...: ccc ...: ''' In [2]: aaa.split('\n') Out[2]: ['', 'aaa', 'bbb', 'ccc', ''] In [3]: lst = aaa.split('\n') In [4]: lst Out[4]: ['', 'aaa', 'bbb', 'ccc', '']
で、リスト内包表記
In [5]: [x for x in lst if x is not ''] Out[5]: ['aaa', 'bbb', 'ccc']
<Google Cloud Platform> Google Cloud SDKを入れなおす。
前にWindows版 --> Linux版 on msys2 と入れて、ぐちゃぐちゃ?っぽくなってしまったので、入れなおした。
両方削除して、Linux版だけ入れた。
下記から、zip
をダウンロードして展開。
Linux 用のクイックスタート | Cloud SDK のドキュメント | Google Cloud Platform
% gunzip google-cloud-sdk-180.0.0-linux-x86_64.tar.gz % tar xvf google-cloud-sdk-180.0.0-linux-x86_64.tar % cd google-cloud-sdk % ./install.sh Welcome to the Google Cloud SDK! To help improve the quality of this product, we collect anonymized usage data and anonymized stacktraces when crashes are encountered; additional information is available at <https://cloud.google.com/sdk/usage-statistics>. You may choose to opt out of this collection now (by choosing 'N' at the below prompt), or at any time in the future by running the following command: gcloud config set disable_usage_reporting true Do you want to help improve the Google Cloud SDK (Y/n)? n Your current Cloud SDK version is: 180.0.0 The latest available version is: 185.0.0 ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ Components │ ├──────────────────┬────────────────────────────────────────────────┬──────────────────────────┬───────────┤ │ Status │ Name │ ID │ Size │ ├──────────────────┼────────────────────────────────────────────────┼──────────────────────────┼───────────┤ │ Update Available │ BigQuery Command Line Tool │ bq │ < 1 MiB │ │ Update Available │ Cloud SDK Core Libraries │ core │ 7.0 MiB │ │ Not Installed │ Cloud Datalab Command Line Tool │ datalab │ < 1 MiB │ │ Not Installed │ Cloud Datastore Emulator │ cloud-datastore-emulator │ 17.7 MiB │ │ Not Installed │ Cloud Datastore Emulator (Legacy) │ gcd-emulator │ 38.1 MiB │ │ Not Installed │ Cloud Pub/Sub Emulator │ pubsub-emulator │ 33.2 MiB │ │ Not Installed │ gcloud Alpha Commands │ alpha │ < 1 MiB │ │ Not Installed │ gcloud Beta Commands │ beta │ < 1 MiB │ │ Not Installed │ gcloud app Java Extensions │ app-engine-java │ 118.7 MiB │ │ Not Installed │ gcloud app PHP Extensions │ app-engine-php │ │ │ Not Installed │ gcloud app Python Extensions │ app-engine-python │ 6.1 MiB │ │ Not Installed │ gcloud app Python Extensions (Extra Libraries) │ app-engine-python-extras │ 27.8 MiB │ │ Installed │ Cloud Storage Command Line Tool │ gsutil │ 3.3 MiB │ └──────────────────┴────────────────────────────────────────────────┴──────────────────────────┴───────────┘ To install or remove components at your current SDK version [180.0.0], run: $ gcloud components install COMPONENT_ID $ gcloud components remove COMPONENT_ID To update your SDK installation to the latest version [185.0.0], run: $ gcloud components update ==> Source [/home/Nekoyuki/google-cloud-sdk/completion.zsh.inc] in your profile to enable shell command completion for gcloud. ==> Source [/home/Nekoyuki/google-cloud-sdk/path.zsh.inc] in your profile to add the Google Cloud SDK command line tools to your $PATH. For more information on how to get started, please visit: https://cloud.google.com/sdk/docs/quickstarts
で、つづきはこちら。
Cloud SDK ツールの承認 | Cloud SDK のドキュメント | Google Cloud Platform
こちらも参考になる。
<Github> pushでユーザ、パスワード省略
push
するときに、ユーザuser
、パスワードpassword
を省略する方法。
.netrc
に書き込めばいいらしい。
% more ~/.netrc machine github.com login username password xxxxxxx
この記事がよくまとまってました。
qiita.com