Python

<Windows, Python, win32com> COMサーバの登録

win32comを使って、Windowsのアプリケーションを操作する場合、 そもそも、対象となるアプリケーションが、レジストリregistryに登録されてないと呼び出せない、、ことを知る。 win32comから呼び出し可能か? は、makepy.pyで調べれる。 ここにリストされて…

<selenium> Windowサイズを変更

seleniumでウインドサイズwindow sizeを変更する技。 In [1]: from selenium import webdriver In [9]: from selenium.webdriver.chrome.options import Options In [10]: options = Options() In [11]: options.add_argument('--window-size=100,100') In […

<Python, PyAutoGui, Selenium> 認証ウインドを乗り越える、、

ブラウザBrowserが出す認証ウインドAuthentication Requiredを通過する技。 ググるとこのウインドは、ブラウザが出すもので、Seleniumで制御できないっぽい。 ということで、PyAutoGuiで対応したっす。 ブラウザを画面いっぱいにして、 真ん中に現れる認証ウ…

<PyAutoGUI, Python> オートメーション

オートメーションautomation、、つまり、マウス、キーボードの自動操作。 PyAutoGUIでできる。 インストールした。 >pip install python3-xlib >pip install pyautogui マニュアル。 Welcome to PyAutoGUI’s documentation! — PyAutoGUI 1.0.0 documentation…

<Python, BeautifulSoup> HTML属性をゲット

BeautifulSoupで、HTML属性attributeをげっちゅうする技。 こんなhtmlテキストがあったとして、、 In [1]: from bs4 import BeautifulSoup In [2]: html = ''' ...: <d> ...: <name>Hage</name> ...: <qty>10</qty> ...: </d> ...: <d> ...: <name>Hige</name> ...: <qty>20</qty> ...: </d> ...: <d> ...: <name>Hoge</name> ...: <qty>12</qty> ...: </d>

<Python, flask> test_client()

Flaskさんをやっていて、app.app_context()をやるがいいが、 実際の動作requestに対する応答を確認するいい方法がないかと思っていたら、ありました。 さすがっす。 app.test_client()らしいっす。 このまえ、かりかり作ったスクリプト(下)でちと実験。 gi…

<Python, flask> Flaskr

どうも、FlaskのドキュメントdocumentのページのFlaskrとGithubの中身が異なるっぽい。 Github版は、Blueprint等々使ってて、初心者向けじゃなくなってる。。。 ち。。。 昔、mitsuhikoさんが作ったものは下記にあるっぽい。 https://github.com/pallets/fla…

<Python, flask> CORS対応。

クロスドメイン通信制約。 セキュリティの問題上、そのHTMLファイルが置かれているドメインのサーバとしか通信できないという制約。 qiita.com で、jQuery ajaxでjsonさんデータをGETするスクリプトを作ったが動かなかった。 ので、Flask-CORSを追加した。 s…

<Python, flask> REST APIをやってみた。。。

前から気になっていた、REST APIとFlask-SQLAlchemy。 サンプルコードを作ってみた。 http://127.0.0.1/sqlalc/id/name/looksの情報を、Jsonの{"id": id, "name": name, "looks":looks}にして、通信+SQLデータベースに取り込む。 GET + /id/name/*/ でSQLか…

<Python, flask> endpointとは、、、

Flaskさんで使われている語句 endpointって何? と思った。 調べてみた。 stackoverflow.com いつも頼りになるstackoverflowさん。 最初の回答はよくわからなかったが、2回目の回答を試す。 In [1]: from flask import Flask, url_for ...: ...: app = Flas…

<Python, class> __dict__で少し遊ぶ。

class.__dict__で少し遊んでみた。 Pythonさんだと、class作成時にインスタンス変数instance variableを準備しなくても、後付けで追加可能とのこと。 クラス作成+インスタンス作成。 In [46]: class Hage(): ...: def __init__(self, name): ...: self.name…

<Python, seaborn> seaborn-data

seaborn-data、、、 seabornの作者さんが準備している、seabornで使えるデータコレクション。 github.com 上記から、ダウンロードして、使える。 In [15]: import seaborn as sns In [16]: sns.load_dataset? Signature: sns.load_dataset(name, cache=True,…

<Python> OSError: [Errno 22] Invalid argument

Python Scriptをクーロンcronさん使って自動実行させていたら、エラーを発見。 OSError: [Errno 22] Invalid argument うーん、、なんじゃろと見ていたら、os.getlogin()でこけていた。 ぐーぐるした結果、os.getlogin()はターミナルTerminalの情報を取りに…

<Python, win32com> PythonでWindows app制御

忘れないようにメモ。 そのうち、試そう。 win32com - PyWin32(Python for Windows extensions) - 愚鈍人 Win32 Extensions for Python

<Python, selenium> 要素があるか?

要素elementがあるか? ないか? 存在するのか? の確認。 driver.find_elementsを使う。sが最後につく。 要素があれば、リストを返してくる。 なければ空リストを返す。 ja.stackoverflow.com

<Python> パスワードのために入力文字を表示しないプロンプト

めも。 http://ja.pymotw.com/2/getpass/

<Python> == と is の違い

違い。。。 isは、オブジェクト番号 id()で比較している。 ==はオブジェクトの内容で比較している。 In [1]: lst = [1,2,3] In [2]: lst2 = lst In [4]: id(lst) Out[4]: 439830664 In [5]: id(lst2) Out[5]: 439830664 In [6]: lst2 is lst Out[6]: True In…

<Python, iPython>エラー。。。 QxcbConnectionうんぬんかんぬん。。。

新しいものにひかれ、condaさんで、python3.6の環境を作成。 ちょれ~と、ipythonを起動したら、エラーになった。 QXcbConnection: Could not connect to display ちとぐぐった結果、~/.ipython/profile_default/startup/00-first.py中で、import matplotlib…

<Python, Anaconda> tempfile。。。

ちと。。。メモ。。。 WindowsのAnacondaのtempfileって、なんか仕様ちがわね??? dir()してみると、.writeとかないんだけど、、、 In [73]: dir(tempfile.TemporaryFile()) Out[73]: ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__…

<msys2, Jedi> msys2のvimでのJedi-vim

ちとはまったのでメモ。 msys2のvimでJedi-vim。 どうも、msys2のvimは/bin/msys-python2.7.dllか、/bin/msys-python3.4.dllを見に行っているらしい。 なので、そのどれかがないとJedi-vimが動かない。 エラーを吐く。 vim --version VIM - Vi IMproved 8.0 …

<Python, pandas> to_csvでUnicodeEncodeError

Flaskさん中で、subprocessを使って、Pythonスクリプトを呼び出す。 呼び出されたPythonスクリプト中で、pandas.DataFrame.to_csv()を使って、データフレームをcsv出力。 データフレーム中に入っているデータが、元UTF-8だった場合、かつFlask環境がLANG=asc…

<Python, requests> requestsでSSLError

最近requestsでSSLErrorが出るようになってしまった。。。 In [10]: import requests In [11]: r = requests.get(url, verify=False) ってやって、verifyを無視すれば、少々せきゅりちーに問題ありだがアクセスできるらしい。。。 hige-sun.net で、、reques…

<Python, pandas, pyOpenSSL> 久々に使ったらエラーだらけ。。。

pandas-datareaderを久々に使ったらエラーだらけだった。。。 その1 ImportError In [17]: import pandas as pd In [18]: import pandas_datareader.data as web : ImportError: cannot import name 'PandasError' pd.__version__ Out[19]: '0.20.2' pandas…

<Python, codecs> 文字列のエンコード、デコード

文字列strのエンコードencodeとデコードdecode。 codecsというモジュールでいろいろ対応できるらしいっす。 In [8]: import codecs 文字列を期待するものたち、、、 In [10]: codecs.encode('hage', 'utf8') Out[10]: b'hage' In [11]: codecs.encode('hage'…

<Python, yaml> Yamlしてみた。

設定ファイル config fileの1つの形式である、yamlをやってみた。 In [1]: s = ''' ...: name: Hage ...: sex: male ...: class: useless ...: hair: nothing ...: arms: ...: - gun ...: - pachinko ...: ''' In [3]: with open('aaa.yaml', 'w') as f: ..…

<selenium, Python> Proxyの設定... Firefoxの場合と、Pyvirtualdisplay

seleniumでProxyを指定する方法…Firefoxの場合。 あと、Pyvirtualdisplayで、Firefoxのヘッドレスheadlessをやってみた。 ヘッドレス、、とは、GUI無し。 つまり、うまくいけばtelnetやrshで端末から入って、コマンドラインで動かせる。 rom selenium import…

<Json, REST API> Json Test

REST APIの実験をかねて、Jsonのデータを返してくれるようなとこないかな? と探したらあった。 http://www.jsontest.com/ こりゃいいや。 早速試す。 In [1]: import requests In [2]: requests.get('http://echo.jsontest.com/key/value/one/two') Out[2]: <Response [200]></response>…

<Python> 文字コード

文字コード Character Codesで少し遊んだ。 UTF-8のコード表。 UTF-8コード表(1) このコード表を元にデコードdecodeしてみる。 In [36]: b'\xe3\x81\x82'.decode() Out[36]: 'あ' In [37]: b'\xc3\xa0'.decode() Out[37]: 'à' なるへそ。 じゃ、ってことで、…

<Python, pandas, Beautiful Soup> html tableからpandas dataframeへ。

html中にあるtableから、pandas dataframeを作る。 <tr> <td>タブとかを、ちくちくと、Beautiful Soupでパースしないといけないのか、、、 いやいや、そんな面倒なことは、誰かが、既に何かを作っているはず、、と思ってたら、あった。 pd.read_html()でいける。ちょ</td></tr>…

<Python, selenium> ブラウザのウインドウを切り替える。

セレニウムseleniumを使ってる時に、ブラウザbrowserのウインドwindowを切り替える技。 .window_handlesアトリビュートに、Window Idが入っているので、 それを、.switch_to_window()メソッドで指定する。 In [93]: from selenium import webdriver In [94]:…