py-py’s blog

何か書くよ

2019-01-01から1年間の記事一覧

DjangoのFormについて

applicationフォルダ配下にforms.pyを作る。 フォームを定義するには django.forms.Form django.forms.ModelForm のどちらかを使う。 django.forms.ModelFormの方が、既存Modelを流用できるため楽に書ける。 django.forms.Formを使った場合。 forms.py from …

シェルによるDjangoモデルの検索

python manage.py shell # 便宜上簡易的なimport宣言にする from . import ModelName # 対象モデルから全件取得 ModelName.objects.all() # 対象モデルから条件を絞って出力 ModelName.objects.filter() # 対象モデルからidが1のデータを取得 ModelName.obje…

DjangoのrenderとHttpResponse

基本render()を使う。 from django.http import HttpResponse from django.template import loader def test_function(request): # 何かの処理 result = ## # html読み込み template = loader.get_template('somewhere/index.html') context = {'result': re…

http通信のheaderについてのメモ

ここらへんわかってないのでへぼいわ。 Referer・・今のページへリクエストしている直前のページのアドレス 参考: developer.mozilla.org ファイルをダウンロードする際、ユーザーエージェントを付与するが、そのほかに付与したい場合、以下のようにする。 f…

面接のときにプログラムを手書きさせる企業なんなの

目の前の箱使わせろや

get_attributeとhas_attr

seleniumとbeautifulsoupでクローリングしているときによく使うのだが、どちらがどっちだったか忘れてしまうため、記入。 selenium get_attribute() beautifulsoup has_attr() has_attr()の方は、attribute持っているかの判定を行い、持っていた場合その要素…

xlrdを使ってエクセルからデータを取得する

良く使うものと簡単かつ適当なサンプルを。 open_workbook("excel_file_name") 引数に指定したエクセルを開く sheet_by_name("sheet_name") 引数に指定したシートをアクティブにする nrows シート内の行を取得する。range()と合わせて使う row_values(index)…

urlopen error EOF occurred in violation of protocol (_ssl.c:777)

なんか出た。 一時的な問題にも思えるのだが。 後で調べるためにおいとく。

PyCharmのscanning files to indexに時間がかかった際の対処(windows)

既存プロジェクトをPyCharmでopenした際、指定ディレクトリ配下にimgやらdocやらのファイルがわんさかある場合、タイトルの事象が起きることがある。 待っているのも時間かかるし、いつ終わるかもわからないので、余分なファイルやフォルダは走査対象外にす…

上記のディレクトリで CMD.EXE を開始しました。 UNC パスはサポートされません。Windows ディレクトリを既定で使用します。

windows10の方に共有フォルダにあるプログラムを実行できない、と言われたため調べた。 ネットワークドライブの割り当ては既に行っているものとする。 レジストリをいじればOK。 ただwindows7と10ではみるところが違うような気がするため、めもっておく。 共…

JavaScriptの関数定義

1 function命令 2 関数オブジェクト 3 new演算子を利用したコンストラクタ関数 1, 2,はわかるが、3の使いどころが分からない。 function命令 function hello(msg){ return msg; } console.log(hello("hello world")); 関数オブジェクト(関数名を持たないので…

urllib.request.urlopen()で特定のサイトが開かない場合

よくあるある。 記事書いたか覚えないけど、覚えてないことはまた書いておこう。 題名の通りで urlopen()で開かない timeout=nを指定してもだめ な時にはUser-Agent情報を付与すること。 from urllib.request import urlopen url = "hogehoge" reqeust = url…

csvで出力すると一行空く

今まで2重配列をwriter.writerows()で一気にいれていたため、こういうことはなかった。 ただ、一行ずつ入れるときに一行空いてしまったためググったら速攻どんぴしゃな記事が。 qiita.com import csv with open(file_name, "w", encoding="utf-8_sig, newlin…

configparser.ConfigParserでconf.iniを正常に読み込まない件

結論 read()したものを変数に突っ込んでました。。 ルーチン作業の自動化プログラムを作成しているときにはまったしょうもないこと。 こんな風にconfファイル作って conf.ini [download_folder] folder = XXXXX [chromedriver] file_path = XXXX url = XXXX …

urlopen()で引数に日本語が含まれているとアクセスできない件【追記あり】

今までファイルを取得してきた中でファイル名に日本語が含まれているものが少なかった。 今回日本語が含まれるファイルがいくつかあったため、その際に取った方法を。 サンプルurl: http://www.nantara.com/ほげほげ.jpg 流れ ①urlに日本語があるか確認する …

Basic認証ありサイトへSeleniumでログインする

よくある、エクセルでまとめられた顧客一覧リスト記載のURLにアクセスする、みたいな作業工程を自動化した。 その時の簡単なメモ。 Basic認証 -> urlを加工して簡単にログインする from urllib.parse import urlparse from selenium import webdriver driver…

TortoiseGitメモ

www.aise.ics.saitama-u.ac.jp

タグ内のテキストの一部に別タグを付けたい(20190625追記)

こんな感じのhtmlがあるとする(一部抜粋) <div class="hogehoge">第一回 天下一武道会を開始する。うわ、ビルズ様つえぇなあ。</div> この「第一回」という文字に対し何らかのタグを付与したい。 例えば太字にしたいとか。 BeautifulSoupのnew_tagをそのまま使うとhogehoge全体が太字にな…

mysqldump Version Mismatch

MySQLからデータのバックアップをするため、Data Exportしようとすると怒られた。 前提 MySQL 5.7利用 mysqldump.exe is version XXX, but the MySQL Server to be dumped has version YYY. Because the version of mysqldump is not the same as the server…

リモートデスクトップにて誰がログインしているか調べる

正直書くものでもないな、、 query session/server:IP

スクレイピングメモ【追記あり】

以前 py-py.hatenablog.com ↑でキーを押しながら要素をクリックする、ということを書いたが、これに関連しそう&いろいろ詰まったことがあったのでメモ 結論 一覧に戻るやトップページに戻るなどのリンクやボタンを押すプログラムを組むときは、別タブを用意…

BeautifulSoupオブジェクトをhtmlに変換する

BeautifulSoupで既存のhtmlを加工した後、htmlとして使いたいときに以下の関数を利用する。 soup.prettify() from bs4 import BeautifuSoup, ResultSet html : str = "" with open("hoge.html", "r", encoding-"utf-8") as f: html = f.read() soup = Beauti…

SystemError: error return without exception set

Pycharmでデバッグしているときに発生した。 参考 stackoverflow.com ただし上記で検証していないので各自で検討。 考えることをやめた自分はそのまま実行だわ わはは。

xcodeにてUI作成する際に

参考 teratail.com ↑をやってダブルクリック

ChromeDriverのheadlessモードによるスクレイピング

今まで windows phantomjs を使ってスクレイピングをしてきたが、phantomjsの開発が終わったため? chromedriverを使いたいという声が上がってきた。 chromedriverのheadlessモードを使うまでの手順を書く。 前提 windows chromedriverをダウンロードしてい…

seleniumでキーを押しながら要素をクリック

する際にActionChainsに、seleniumで取得した要素をつっこんで怒られていた話。 ActionChainsに突っ込むのはdriverで、取得した要素を突っ込むのはActionChainsオブジェクトの関数click() from selenium import webdriver from selenium.webdriver.common.ke…

WebDriverWait(driver, timeout)って条件満たすまで待機してるの?

こんな感じのコードがあるとする from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions from selenium.webdriver.common.by import By url = "対象サイト"…

Anacondaを使わずにvenv仮想環境下でnumpy, pandasを使いたい

が、できず。。なぜだ。 前提 windows Python3.7.2 venvで仮想環境作った venvの仮想環境をactivateしてpipが古いからアップデートして pip install pandas で依存ライブラリ入ってインストには成功するのに Pycharm上でimport pandasと打つと 「ModuleNotFo…

Pythonによる文字データの圧縮

DBにデータを入れる際に、データが大きすぎてinsertできなかったため、データを圧縮して保存することにした。 方法は簡単で、以下のようになる その前にいくつかまとめる .encode() .decode() .hex() .fromhex() encode()の使い方 文字列をbytes型へ変換する…

cmdのバッチからPythonを動かす

前提: windows python3.6 バッチファイルとして以下を記述 exe_python.bat @echo off Pythonのパス 実行したいpythonファイル pause 例: ディレクトリに以下のファイルを作る main.py execute_main.bat execute_main.bat @echo off Pythonへのパス main.py …