Python関連のことを調べてみた2021年12月11日

Python関連のことを調べてみた2021年12月11日

Qtでディスプレイの拡大・縮小のスケールを取得する

ノートパソコンによってはスケールが200%とかなので、文字の大きさなどでレイアウトが崩れる場合がある。
スケールによらずに表示させるためにスケールを取得したいときは以下の関数を使う。

“`python
from qtpy.QtGui import QGuiApplication # qtpyを使っていない場合はPyQt5などからインポートする
def get_scale() -> float:
screen = QGuiApplication.screens()[0] # メインのスクリーンを取得
return screen.devicePixelRatio()
“`

ただし、Qt Applicationが走っていないと使えないので注意。

元記事を表示

pythonで青空文庫にある夏目漱石の書籍をスクレイピングする

# はじめに
[TechCommit Advent Calendar 2021](https://qiita.com/advent-calendar/2021/tech-commit) 3日目を担当しますRyotaです!
よろしくお願いいたします。

pythonで機械学習を勉強するため、書籍「Pythonによるスクレイピング&機械学習 開発テクニック 」に沿って学習していました。
自然言語処理の章で学習用のデータを収集するため、青空文庫から夏目漱石などの作家の作品を一括ダウンロードする必要がありました。
一括ダウンロードサイトとして「http://keison.sakura.ne.jp/」
からダウンロードするようにと書かれていましたが、現在はそのサイトは無い様子。

そこで、自分で青空文庫から夏目漱石の書籍をダウンロードして展開するスクリプトを作成しましたので、参考になればと思い記載させていただきます。

# 注意事項
青空文庫のUIが変わると、正常にスクレイピングができなくなります。

# 環境
~~~
windows 10
Python 3.10.1

元記事を表示

業界未経験のプログラミング初心者が実務で自動化スクリプトを作る際にぶつかった壁

# はじめに
### 概要
この記事では、学習コンテンツでPythonの基礎を勉強しただけの超絶プログラミング初心者である筆者が、勢いだけで飛び込んだゲームQA業界で、実際に使う自動化スクリプトを作る際にぶつかった壁について、また、その壁の乗り越え方について振り返っていきたいと思います。

### 自己紹介
・前職では携帯ショップ勤務(プログラミングなんてかけらも触ったことはなかった)
・プログラミングに興味を持ったのはお客様との何気ない会話から
・重度のゲーマー(酷いときは週2で新しいゲームを購入)
・プログラミングへの興味とゲーマーとしての興味が合体した結果、Pythonの基礎を勉強後、勢いでゲームQA業界に転職、自動化エンジニアへ

# 実際に使うスクリプトを作る際にぶつかった壁
### 何をどう作ればいいか分からない
インターネット上には様々なPythonの学習コンテンツが存在しており、その殆どがプログラミング初心者でも理解できるように分かりやすく作られています。

しかし実務では、用意された題材も、使う関数の指示も、行き詰った時の解説も存在しません。

なので、テストケースか

元記事を表示

【python】Bookmarkしておきたいリソース3選

# はじめに

皆さんこんにちは!YomamaBananaでございます。
今回は皆さんにご紹介したいものがございまして、ぜひ最後まで読んでいただければと思います!

今回は自分がpythonで開発する際に非常にお世話になっているサイトを3つ紹介します。
**!注意!**紹介するリソースはどれも**英語ONLY**となっております。

1. Computer Visionに注力している**PyImageSearch**
1. 機械学習・深層学習全般の**Machine Learning Mastery**
1. ワシントン大学の**Steve Brunton先生**

# PyImageSearch

### オススメ度: :thumbsup: :thumbsup: :thumbsup: :thumbsup:

#### ポイント:

* 全てのコードに対して説明がある。(英語)
* Notebook付き。
* 更新がこまめ。

#### 概要:

CV系に関するものはたいていあります。さらに単純にソースコードと出力だけではなく、全ての手順に説明がついており、問題定義→手法提示

元記事を表示

Flask入門③~画像の表示~

##はじめに
前回の続き。やっぱり文字だけではなく画像も扱いたいと思ったので、色々いじっていきます。

https://qiita.com/dem_kk/private/39bb718ea92126f3d6e7

##環境
* windows10
* flask2.0.2
* python3.8.10

##画像の表示

下記のようなファイル階層にしています。htmlファイルを利用して画像を読み込むため、templatesの下にimageディレクトリを作成しています。

“`html
directory/
|__flask~~.py
|__templates/
|__index.html
|__images/
|__~~.png
“`

画像を読み込むときは、パスをきちんと通さないといけないとのことで、imgで設定しています。

“`html:index.html






</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>CSS</div> <div class='tag-cloud-link'>Flask</div> <div class='tag-cloud-link'>初心者</div> <div class='tag-cloud-link'>フレームワーク</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/dem_kk/items/96117a7275c3267d0fbe'>元記事を表示</a></div> <h3 id="outline__6"><a href='https://qiita.com/T_Ryota/items/ef96d6575404a0fd46dd'>【Colab / Python】気象庁API – 気象データの収集</a></h3> <blockquote><p>本記事は[マイナビ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/mynavi) の11日目の記事になります。</p> <p>## 本記事を読んで欲しい方<br /> – 気象データの収集をしたい方<br /> – Python or GASを利用しデータの収集をしたい方</p> <p>## 目次</p> <p>1. [はじめに](#はじめに)<br /> 2. [データ収集前の確認事項](#データ収集前の確認事項)<br /> 3. [対象の気象データ](#対象の気象データ)<br /> 4. [実行環境](#実行環境)<br /> 5. [ソースコード](#ソースコード)</p> <p>## はじめに<br /> 弊社のアドベントカレンダーへの投稿 & Qiitaへの投稿をさせて頂くのは今回で2回目になります。<br /> 不慣れな部分もあるかと思いますが温かい目でご覧に頂けますと幸いです。</p> <p>今回、この記事の執筆に至った経緯としては、今年(2021年)の2月16日にあった気象庁ホームページのリニューアルになります。<br /> 以前私はリニューアル前の気象庁のホームページに対しスクレイピングを行い、気象データを収集して翌日の天気をLINEやSlackへ通知す</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>天気予報</div> <div class='tag-cloud-link'>気象庁</div> <div class='tag-cloud-link'>colaboratory</div> <div class='tag-cloud-link'>気象データ</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/T_Ryota/items/ef96d6575404a0fd46dd'>元記事を表示</a></div> <h3 id="outline__7"><a href='https://qiita.com/torifukukaiou/items/74567d2c3302a5d574ab'>私が最近チョコチョコっとつくったSlackアプリのソースコードを全文掲載 (2021/12/11)</a></h3> <blockquote><p>https://qiita.com/advent-calendar/2021/slack</p> <p>2021/12/11(土)の回です。</p> <p># はじめに</p> <p>[Slack](https://slack.com/)を楽しんでいますか:bangbang::bangbang::bangbang:<br /> 「[Bolt 入門ガイド(Bolt for Python)](https://slack.dev/bolt-python/ja-jp/tutorial/getting-started)」わかりやすい! です。<br /> ここの通りにやることで例の**完全理解**[^1]に容易に到達できます。</p> <p>SDKは他に[Bolt for JavaScript](https://github.com/SlackAPI/bolt-js)、[Bolt for Java](https://github.com/slackapi/java-slack-sdk)とありまして、私はなんとな〜く[Bolt for Python](https://github.com/SlackAPI/bolt-python)に飛びつきました。</p> <p>[^1]: ht</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>Slack</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/torifukukaiou/items/74567d2c3302a5d574ab'>元記事を表示</a></div> <h3 id="outline__8"><a href='https://qiita.com/m-otsuka/items/2d94d3186eb5d39c84f0'>PyCaretまかせで回帰分析してみた</a></h3> <blockquote><p>この記事はエイチーム引越し侍 / エイチームコネクトの社員による、[Ateam Hikkoshi samurai Inc.× Ateam Connect Inc. Advent Calendar 2021](https://qiita.com/advent-calendar/2021/hikkoshizamurai-connect) 11日目の記事です。</p> <p>本日の担当は@m-otsukaです。</p> <p># 1 はじめに<br /> 個人的に興味のあったPyCaretを試してみました。<br /> PyCaretは、オープンソースの機械学習ライブラリーで、ローコードでモデル作成が行えることが特徴です。</p> <p>今回は、**なるべく複雑な設定などは行わずPyCaretまかせ**にして、どれくらいの精度のモデルを作成することができるのか、調べてみます。</p> <p>## 1.1 学習データ<br /> 今回、学習用データとして、kaggleのコンペティション[House Prices – Advanced Regression Techniques](https://www.kaggle.com/c/house-prices-advanced-re</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>機械学習</div> <div class='tag-cloud-link'>回帰分析</div> <div class='tag-cloud-link'>PyCaret</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/m-otsuka/items/2d94d3186eb5d39c84f0'>元記事を表示</a></div> <h3 id="outline__9"><a href='https://qiita.com/nenesarn/items/c8eb6db8c43402752e2b'>alembicのmigrationでDB情報を環境変数から取得できるようにする備忘録</a></h3> <blockquote><p>プライベートで作成しているアプリケーションのmigrationツールとしてalembicを利用しています。<br /> migrationのDB情報を環境変数で取得できると便利だなぁと考えてやってみたので備忘録として記事を書きました。</p> <p># 環境の確認と準備</p> <p>“`bash<br /> $ python -V<br /> Python 3.9.4<br /> $ pip freeze | grep alembic<br /> alembic==1.6.5<br /> “`</p> <p>“`bash<br /> $ alembic init testalembic<br /> $ tree<br /> .<br /> ├── alembic.ini<br /> └── testalembic<br /> ├── README<br /> ├── env.py<br /> ├── script.py.mako<br /> └── versions<br /> “`</p> <p>今回DBはMariadb 10.5.10を利用します。</p> <p># alembic.iniの修正</p> <p>`alembic init` した際に alembic.ini が作成されて、alembic initファイルには`sqlalchemy.url`セクションが存在します。</p> <p>“`<br /> sqla</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>Alembic</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/nenesarn/items/c8eb6db8c43402752e2b'>元記事を表示</a></div> <h3 id="outline__10"><a href='https://qiita.com/shiozaki/items/598498988b458638f171'>DataflowのストリーミングJOBをデプロイするときの無限ループの回避</a></h3> <blockquote><p>Apache BeamのJobをCloud Dataflowにデプロイするために、以下のようなコマンドを使うことができます。</p> <p>“`sh<br /> python -m apache_beam.examples.wordcount –input gs://dataflow-samples/shakespeare/kinglear.txt \<br /> –output gs://<your-gcs-bucket>/counts \<br /> –runner DataflowRunner \<br /> –project your-gcp-project \<br /> –region your-gcp-region \<br /> –te</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>dataflow</div> <div class='tag-cloud-link'>ApacheBeam</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/shiozaki/items/598498988b458638f171'>元記事を表示</a></div> <h3 id="outline__11"><a href='https://qiita.com/e99h2121/items/77be259b6d361dc54c73'>手を抜いたプログラム</a></h3> <blockquote><p>## Long, long ago.</p> <p>プログラムはあくまで手段だ、大事なのはいかに人間の「業務」を達成するかだ、等と存在を軽視したかのような時代がありました。</p> <p>## 一方</p> <p>プログラムそのものが実は人間の「業務」を「いかに為すか」です。</p> <p>https://qiita.com/chikuwaespresso/items/55fbde95db7ff308e5eb</p> <p>https://note.nkmk.me/python-str-remove-strip/</p> <p>にそのままヒントを得まして手を抜いたプログラムを書きました。</p> <p>### 出力</p> <p>“`<br /> root@0230359a1b81:~/opt# python3 te.py<br /> 1: パソコンで文章を書いいると、手書きに比べどこか心が込もっいないと感じることはないでしょうか<br /> 2: パソコンで文章を書いいると、手書きに比べどこか心が込もっいないと感じることはないでしょうか<br /> 3: パソコンで文章を書いいると、手書きに比べどこか心が込もっいないと感じることはないでしょうか<br /> 4: パソコンで文章を書いいると、書きに比べどこか心が込もっいないと感じること</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>文字列</div> <div class='tag-cloud-link'>whi-advent</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/e99h2121/items/77be259b6d361dc54c73'>元記事を表示</a></div> <h3 id="outline__12"><a href='https://qiita.com/manabian/items/67af7e4476d436aded77'>データエンジニア界隈で話題のdbt(data build tool)のまとめ</a></h3> <blockquote><p>## 概要<br /> データエンジニア界隈で話題となってきたdbtに関する調査内容を共有します。<br /> OSS版のdbtでも機能が充実しており、データエンジニアの方には一部の機能の利用だけでも価値があるツールです。</p> <p>必要に応じて、この記事を更新します。</p> <p>## dbt(Data Build Tool)とは<br /> dbtとはData Build Toolの略であり、dbt Labs社が開発しているデータ連携のELTにおけるT(データストア内でのデータ変換)の実施をサポートするツールです。<br /> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/540211b8-3883-89ec-edff-7320fc774028.png)</p> <p>機能をざっくり整理すると下記のものがあり、SQL文のコンポーネント化やドキュメントの自動生成に特異性があります。</p> <p>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/555a</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>ETL</div> <div class='tag-cloud-link'>データエンジニアリング</div> <div class='tag-cloud-link'>dbt</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/manabian/items/67af7e4476d436aded77'>元記事を表示</a></div> <h3 id="outline__13"><a href='https://qiita.com/miya_ken/items/f88a051e4c6cfd2a67de'>PythonでBurp Suite拡張機能の作り方</a></h3> <blockquote><p>脆弱性診断で使用しているBurp Suiteの拡張機能の作り方を簡単にメモしたいと思います。</p> <p>## 環境構築</p> <p>Pythonで拡張機能を使用するには、Javaで実装されたスクリプト言語のJythonをBurpに設定する必要があります。</p> <p>1. [公式サイト](https://www.jython.org/download)からJython Standaloneをダウンロードします<br /> 1. Burpの Extender > Options > Python Environment を表示します<br /> 1. Location of Jython standalone jar file にダウンロードしたJythonのjarファイルのパスを指定します</p> <p>これでPythonで書かれた拡張機能を使用できるようになります。</p> <p>## 作り方</p> <p>Burp拡張機能のサンプルは [Burp Suite Extensibility](https://portswigger.net/burp/extender) で公開されています。<br /> 後は [Burp Extender API](https://portswigge</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>BurpSuite</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/miya_ken/items/f88a051e4c6cfd2a67de'>元記事を表示</a></div> <h3 id="outline__14"><a href='https://qiita.com/hisakichi95/items/dc40bc6956a35c99afee'>ダッシュボード作成ライブラリPanelのウィジェット紹介 ~出力系編~</a></h3> <blockquote><p># はじめに</p> <p>以前、Jupyter上にダッシュボードを作成できるPanelというライブラリを紹介しました。<br /> ⇒ [”エコ”にダッシュボードをつくろう ~Panelライブラリの紹介~](https://qiita.com/hisakichi95/items/717b0c78c00a9de9bd5a)<br /> 学習コストが少ないというのが特徴のライブラリですが、各ウィジェットのオプション設定は色々調べないと分からないようなものも多数ありました。後学のため整理しておきます。</p> <p>今回は主に**処理した結果を画面表示するといった出力系ウィジェット**についてまとめます。<br /> ちなみに入力系ウィジェットはコチラ↓<br />  [ダッシュボード作成ライブラリPanelのウィジェット紹介 ~入力系編~](https://qiita.com/hisakichi95/items/fb3a12338d5cc8911f76)</p> <p>特に入力系ウィジェットと区別する必要もないのですが、以下パネルと呼びます。<br /> 出力系のパネルは基本`pn.pane.~()`でインスタンスを生成します。</p> <p>## 共通<br /> Panelを扱うには、pipなどでpa</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>Jupyter</div> <div class='tag-cloud-link'>ダッシュボード</div> <div class='tag-cloud-link'>Panel</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/hisakichi95/items/dc40bc6956a35c99afee'>元記事を表示</a></div> <h3 id="outline__15"><a href='https://qiita.com/tahigash/items/05a2cad4365ec1a47f55'>今からでも遅くない pyATS でネットワーク自動化入門 2021版</a></h3> <blockquote><p>この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2021 1枚目の 11 日目として投稿しています。</p> <p>2021年版: https://qiita.com/advent-calendar/2021/cisco (<<<) 2021年版(2枚目): https://https://qiita.com/advent-calendar/2021/cisco2 2020年版: https://qiita.com/advent-calendar/2020/cisco 2020年版(2枚目): https://qiita.com/advent-calendar/2020/cisco2 2019年版: https://qiita.com/advent-calendar/2019/cisco 2018年版: https://qiita.com/advent-calendar/2018/cisco 2017年版: https://qiita.com/advent-calendar/2017/cisco # はじめに pyATS 開発チームに所属す</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>ネットワーク</div> <div class='tag-cloud-link'>自動化</div> <div class='tag-cloud-link'>Cisco</div> <div class='tag-cloud-link'>pyATS</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/tahigash/items/05a2cad4365ec1a47f55'>元記事を表示</a></div> <h3 id="outline__16"><a href='https://qiita.com/glyzinieh/items/1ad567c2f2268cd1c185'>【覚書】Pythonのバージョン管理について</a></h3> <blockquote><p># はじめに<br /> 今回は、Pythonで躓きやすいバージョン管理について、覚書を兼ねて解説(?)します。<br /> 使いやすい方法は人によって変わってくると思いますので、いろいろな方法を試していただければと思います。</p> <p>Pythonでは、複数バージョンをインストールして、切り替えながら使うということが少し複雑になっています。メジャーバージョン(2系・3系)同士では動くのですが、マイナーバージョンを複数インストールすると思ったように動かないことが多々あります。そんなときに、使える方法をご紹介します。</p> <p>なお、[こちら](https://wisteria-yt.blogspot.com/2021/08/python.html “Pythonのバージョン管理について(覚え書き)”)のリメイク版となります。</p> <p># 方法<br /> ここからはWindowsとmacOSに分けてそれぞれのおすすめの方法をご紹介します。Windowsの方は[こちら](#pythonランチャー–venv-windows)、macOSの方は[こちら](#pyenv–venv-macos)からご覧ください。</p> <p>## Pythonランチャー ×</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>pyenv</div> <div class='tag-cloud-link'>Python3</div> <div class='tag-cloud-link'>Anaconda</div> <div class='tag-cloud-link'>venv</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/glyzinieh/items/1ad567c2f2268cd1c185'>元記事を表示</a></div> <h3 id="outline__17"><a href='https://qiita.com/satto_sann/items/1a31d911710a790c99cc'>【Python】GiNZA+SudachiPyを使ってテキスト内の品詞出現頻度を解析してみた</a></h3> <blockquote><p>この記事は [ZOZO #3 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo) 11日目の記事になります。</p> <p># はじめに<br /> 文章中に存在する品詞の頻度数を見てみたいと思い、実現方法を調べたところGiNZAとSudachiPyの組み合わせが環境構築と実装の面でも簡単そうでした。</p> <p>本記事では、**品詞の頻度解析の実装方法**と大量のテキストを処理する上で問題となっていた**処理時間の高速化方法**をあわせて紹介したいと思います。</p> <p># 最終的に出来ること<br /> 下記のようなワードがあったとき</p> <p>“`csv:input.csv<br /> ナイロンっぽいトップス<br /> 渡せるフラワー<br /> ピスタチオカラー<br /> ロング<br /> オシャレなブーツ<br /> 腕時計<br /> セール対象商品<br /> …<br /> “`</p> <p>これらのワードをGiNZAとSudachiPyを使ったプログラムで解析し、下記のように結果を返します。<br /> ※ サンプルで用意したこれらのワードは自作したものです。</p> <p>#### 形態素解析結果</p> <p>“`csv<br /> keyword,token_pos<br /> 赤い靴下,赤い:ADJ</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>品詞分解</div> <div class='tag-cloud-link'>GiNZA</div> <div class='tag-cloud-link'>SudachiPy</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/satto_sann/items/1a31d911710a790c99cc'>元記事を表示</a></div> <h3 id="outline__18"><a href='https://qiita.com/mmclsntr/items/09ebfa3a6c717923ead4'>CloudWatch Logsのログ取得で空が返ってくることがあるっていう仕様</a></h3> <blockquote><p> # 概要<br /> CloudWatch Logsのログ取得で、AWS上にログが存在しているにもかかわらず空の情報が返ってくることがあり、その理由を調べた結果そういった仕様であったという話。</p> <p># ログがあっても空が返ってくることがある<br /> CloudWatch Logsの特定のログストリーム内の、指定期間内のログを取得する処理を、boto3を使ってPythonで作ったものがある。</p> <p>ある日、ログストリーム内に対象のログがあるのに取得されないということがあった。</p> <p>いろいろ調査していると、利用しているAPI ( `get_log_events` ) のドキュメントで以下の説明を見つけた。</p> <p>>This operation can return empty results while there are more log events available through the token.<br /> >引用 : https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/logs.html#CloudWatchLogs</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>AWS</div> <div class='tag-cloud-link'>CloudWatch</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/mmclsntr/items/09ebfa3a6c717923ead4'>元記事を表示</a></div> <h3 id="outline__19"><a href='https://qiita.com/Py_r/items/2bbd7f749ae5b63c34ca'>PythonのSelenuimを用いてアカウントログイン</a></h3> <blockquote><p>#はじめに<br /> この記事ではPythonのSeleniumを使用してQiitaのアカウントにログインしようと思います。<br /> ##開発環境<br /> macOS BigSur Ver11.6<br /> Python2.7.18<br /> VisualStudioCode 1.58.2<br /> ##事前準備<br /> まずSeleniumが必要なためpipを使用しインストールしてください。</p> <p>“`terminal:terminal<br /> pip3 install selenium<br /> “`<br /> 次に[ChromeDriver](https://chromedriver.chromium.org/downloads)をインストールします。これはスクレイピングの際に使用するものです。Chromeの種のような感じです。</p> <p>#開発<br /> まずQiitaのログインは https://qiita.com/login?redirect_to=%2F から行うことができます。以下の手順となります。<br /> 1,メールアドレスを入力<br /> 2,パスワードを入力<br /> 3,ログインを押す<br /> これをseleniumを使用し再現します。</p> <p>“`python:login.py<br /> from selenium</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> <div class='tag-cloud-link'>Selenium</div> <div class='tag-cloud-link'>python2.7</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/Py_r/items/2bbd7f749ae5b63c34ca'>元記事を表示</a></div> <h3 id="outline__20"><a href='https://qiita.com/Hiroki1928/items/8911d08c2b02afc00c5b'>Pythonのdatetime比較でハマった話</a></h3> <blockquote><p># この記事について<br /> 唐突ですが、[以前作成した社内ボット](https://qiita.com/Hiroki1928/items/e3e18636c1da955023f1)が動かなくなりました。。。<br /> 原因を調べてみると、Pythonのdatetime型の比較処理が原因だったので、まとめてみました。</p> <p># 修正の変遷<br /> – get_atom関数を実行してみるとこのようなエラーが出ました。</p> <p>“`<br /> >python main.py<br /> Traceback (most recent call last):<br /> File “main.py”, line 36, in <module><br /> main()<br /> File “main.py”, line 14, in main<br /> msg_arr = atom.get_atom()<br /> File “C:\Users\XXX\Documents\XXX\slack-qiita-bot\bot\atom.py”, line 21, in get_atom<br /> tdatetime = dt.strptime(d_atom[‘entries’][i]</p></blockquote> </blockquote> <aside class='widget widget-post'> <div class='tag-cloud-link'>Python</div> </aside> <div><a style='width:100%;' class='btn__link' href='https://qiita.com/Hiroki1928/items/8911d08c2b02afc00c5b'>元記事を表示</a></div> </div> </section> <!-- 記事下シェアボタン --> <aside> <ul class="socialList"> <li class="socialList__item"><a class="socialList__link icon-facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmiofactor.com%2F2021%2F12%2F11%2Fpost-15056%2F&t=Python%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F2021%E5%B9%B412%E6%9C%8811%E6%97%A5" target="_blank" title="Facebookで共有"></a></li><li class="socialList__item"><a class="socialList__link icon-twitter" href="http://twitter.com/intent/tweet?text=Python%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F2021%E5%B9%B412%E6%9C%8811%E6%97%A5&https%3A%2F%2Fmiofactor.com%2F2021%2F12%2F11%2Fpost-15056%2F&url=https%3A%2F%2Fmiofactor.com%2F2021%2F12%2F11%2Fpost-15056%2F" target="_blank" title="Twitterで共有"></a></li><li class="socialList__item"><a class="socialList__link icon-line" href="http://line.naver.jp/R/msg/text/?Python%E9%96%A2%E9%80%A3%E3%81%AE%E3%81%93%E3%81%A8%E3%82%92%E8%AA%BF%E3%81%B9%E3%81%A6%E3%81%BF%E3%81%9F2021%E5%B9%B412%E6%9C%8811%E6%97%A5%0D%0Ahttps%3A%2F%2Fmiofactor.com%2F2021%2F12%2F11%2Fpost-15056%2F" target="_blank" title="LINEで送る"></a></li></ul> </aside> <!-- /記事下シェアボタン --> <!-- 記事下エリア[widget] --> <aside class="widgetPost widgetPost-bottom"><aside class="widget widget-post"><h2 class="heading heading-primary">タグ</h2><div class="tagcloud"><a href="https://miofactor.com/tag/%e3%81%9d%e3%81%ae%e4%bb%96/" class="tag-cloud-link tag-link-13 tag-link-position-1" style="font-size: 8pt;" aria-label="その他 (1個の項目)">その他</a></div> </aside></aside> <!-- /記事下エリア[widget] --> <!-- 関連記事 --> <aside class="related"><h2 class="heading heading-primary">関連する記事</h2><ul class="related__list"> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2022/05/06/post-18822/" title="Ruby関連のことを調べてみた2022年05月06日"> <img src="https://miofactor.com/wp-content/uploads/2019/10/ruby-150x150.png" alt="Ruby関連のことを調べてみた2022年05月06日" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2022/05/06/post-18822/">Ruby関連のことを調べてみた2022年05月06日</a> <span class="icon-calendar">2022.05.06</span> </h3> <p class="related__contents">目次 0.0.1. Ruby で Translation API を叩く0.0.2. MySQLの外部キー制約(ON DELETE)を指定しているなら[…]</p> </li> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2021/01/04/post-9591/" title="今さら聞けないセキュリティ 2021年01月04日"> <img src="https://miofactor.com/wp-content/uploads/2019/11/lock-150x150.png" alt="今さら聞けないセキュリティ 2021年01月04日" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2021/01/04/post-9591/">今さら聞けないセキュリティ 2021年01月04日</a> <span class="icon-calendar">2021.01.04</span> </h3> <p class="related__contents">目次 1. セキュリティ基準いろいろ2. SIEM(シーム)とは3. Githubから届いたDeprecation Noticeメールに対応する4. […]</p> </li> <li class="related__item"> <a class="related__imgLink" href="https://miofactor.com/2020/08/25/post-7117/" title="Rails関連のことを調べてみた2020年08月25日"> <img src="https://miofactor.com/wp-content/uploads/2019/10/rails-150x150.png" alt="Rails関連のことを調べてみた2020年08月25日" width="150" height="150" > </a> <h3 class="related__title"> <a href="https://miofactor.com/2020/08/25/post-7117/">Rails関連のことを調べてみた2020年08月25日</a> <span class="icon-calendar">2020.08.25</span> </h3> <p class="related__contents">目次 1. rails db:migrateが失敗!2. RSpecでCSVの値をチェックする3. 【Rails】アソシエーションされたモデルのエラー[…]</p> </li> </ul></aside> <!-- /関連記事 --> <!-- コメント --> <!-- /コメント --> <!-- PVカウンター --> <!-- /PVカウンター --> </main> <!-- /l-main --> <!-- l-sidebar --> <div class="l-sidebar"> <aside class="widget"> <div class="searchBox"> <form class="searchBox__form" method="get" target="_top" action="https://miofactor.com/" > <input class="searchBox__input" type="text" maxlength="50" name="s" placeholder="記事検索"><button class="searchBox__submit icon-search" type="submit" value="search"> </button> </form> </div></aside><aside class="widget"><h2 class="heading heading-widget">Category</h2> <ul> <li class="cat-item cat-item-1"><a href="https://miofactor.com/category/other/">OTHER</a> </li> </ul> </aside><aside class="widget"><h2 class="heading heading-widget">Back number</h2> <ul> <li><a href='https://miofactor.com/2024/09/'>2024年9月</a></li> <li><a href='https://miofactor.com/2024/08/'>2024年8月</a></li> <li><a href='https://miofactor.com/2024/07/'>2024年7月</a></li> <li><a href='https://miofactor.com/2024/06/'>2024年6月</a></li> <li><a href='https://miofactor.com/2024/05/'>2024年5月</a></li> <li><a href='https://miofactor.com/2024/04/'>2024年4月</a></li> <li><a href='https://miofactor.com/2024/03/'>2024年3月</a></li> <li><a href='https://miofactor.com/2024/02/'>2024年2月</a></li> <li><a href='https://miofactor.com/2024/01/'>2024年1月</a></li> <li><a href='https://miofactor.com/2023/12/'>2023年12月</a></li> <li><a href='https://miofactor.com/2023/11/'>2023年11月</a></li> <li><a href='https://miofactor.com/2023/10/'>2023年10月</a></li> <li><a href='https://miofactor.com/2023/09/'>2023年9月</a></li> <li><a href='https://miofactor.com/2023/08/'>2023年8月</a></li> <li><a href='https://miofactor.com/2023/07/'>2023年7月</a></li> <li><a href='https://miofactor.com/2023/04/'>2023年4月</a></li> <li><a href='https://miofactor.com/2023/03/'>2023年3月</a></li> <li><a href='https://miofactor.com/2023/02/'>2023年2月</a></li> <li><a href='https://miofactor.com/2023/01/'>2023年1月</a></li> <li><a href='https://miofactor.com/2022/12/'>2022年12月</a></li> <li><a href='https://miofactor.com/2022/11/'>2022年11月</a></li> <li><a href='https://miofactor.com/2022/10/'>2022年10月</a></li> <li><a href='https://miofactor.com/2022/09/'>2022年9月</a></li> <li><a href='https://miofactor.com/2022/08/'>2022年8月</a></li> <li><a href='https://miofactor.com/2022/07/'>2022年7月</a></li> <li><a href='https://miofactor.com/2022/06/'>2022年6月</a></li> <li><a href='https://miofactor.com/2022/05/'>2022年5月</a></li> <li><a href='https://miofactor.com/2022/04/'>2022年4月</a></li> <li><a href='https://miofactor.com/2022/03/'>2022年3月</a></li> <li><a href='https://miofactor.com/2022/02/'>2022年2月</a></li> <li><a href='https://miofactor.com/2022/01/'>2022年1月</a></li> <li><a href='https://miofactor.com/2021/12/'>2021年12月</a></li> <li><a href='https://miofactor.com/2021/11/'>2021年11月</a></li> <li><a href='https://miofactor.com/2021/10/'>2021年10月</a></li> <li><a href='https://miofactor.com/2021/09/'>2021年9月</a></li> <li><a href='https://miofactor.com/2021/08/'>2021年8月</a></li> <li><a href='https://miofactor.com/2021/07/'>2021年7月</a></li> <li><a href='https://miofactor.com/2021/06/'>2021年6月</a></li> <li><a href='https://miofactor.com/2021/05/'>2021年5月</a></li> <li><a href='https://miofactor.com/2021/04/'>2021年4月</a></li> <li><a href='https://miofactor.com/2021/03/'>2021年3月</a></li> <li><a href='https://miofactor.com/2021/02/'>2021年2月</a></li> <li><a href='https://miofactor.com/2021/01/'>2021年1月</a></li> <li><a href='https://miofactor.com/2020/12/'>2020年12月</a></li> <li><a href='https://miofactor.com/2020/11/'>2020年11月</a></li> <li><a href='https://miofactor.com/2020/10/'>2020年10月</a></li> <li><a href='https://miofactor.com/2020/09/'>2020年9月</a></li> <li><a href='https://miofactor.com/2020/08/'>2020年8月</a></li> <li><a href='https://miofactor.com/2020/07/'>2020年7月</a></li> <li><a href='https://miofactor.com/2020/06/'>2020年6月</a></li> <li><a href='https://miofactor.com/2020/05/'>2020年5月</a></li> <li><a href='https://miofactor.com/2020/04/'>2020年4月</a></li> <li><a href='https://miofactor.com/2020/03/'>2020年3月</a></li> <li><a href='https://miofactor.com/2020/02/'>2020年2月</a></li> <li><a href='https://miofactor.com/2020/01/'>2020年1月</a></li> <li><a href='https://miofactor.com/2019/12/'>2019年12月</a></li> <li><a href='https://miofactor.com/2019/11/'>2019年11月</a></li> <li><a href='https://miofactor.com/2019/10/'>2019年10月</a></li> </ul> </aside> </div> <!-- /l-sidebar --> </div> <!-- /l-wrapper --> <div class="categoryBox"> <div class="container"> <h2 class="heading heading-primary"> <span class="heading__bg u-txtShdw bgc-darkgray">OTHER</span>カテゴリの最新記事 </h2> <ul class="categoryBox__list"> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/19/post-36890/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/js-554x410.png" alt="JavaScript関連のことを調べてみた" width="554" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.19</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/19/post-36890/">JavaScript関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/19/post-36891/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/java.jpg" alt="JAVA関連のことを調べてみた" width="540" height="270" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.19</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/19/post-36891/">JAVA関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/19/post-36894/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/ios-554x410.png" alt="iOS関連のことを調べてみた" width="554" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.19</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/19/post-36894/">iOS関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/19/post-36888/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/rails-725x410.png" alt="Rails関連のことを調べてみた" width="725" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.19</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/19/post-36888/">Rails関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/19/post-36884/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/lambda.png" alt="Lambda関連のことを調べてみた" width="360" height="230" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.19</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/19/post-36884/">Lambda関連のことを調べてみた</a> </h2> </li> <li class="categoryBox__item"> <div class="eyecatch eyecatch-archive"> <a href="https://miofactor.com/2024/09/19/post-36886/"> <img src="https://miofactor.com/wp-content/uploads/2019/10/python-640x410.png" alt="Python関連のことを調べてみた" width="640" height="410" > </a> </div> <ul class="dateList dateList-archive"> <li class="dateList__item icon-calendar">2024.09.19</li> </ul> <h2 class="heading heading-archive "> <a class="hc-darkgray" href="https://miofactor.com/2024/09/19/post-36886/">Python関連のことを調べてみた</a> </h2> </li> </ul> </div> </div> <!-- schema --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Article ", "mainEntityOfPage":{ "@type": "WebPage", "@id": "https://miofactor.com/2021/12/11/post-15056/" }, "headline": "Python関連のことを調べてみた2021年12月11日", "image": { "@type": "ImageObject", "url": "https://miofactor.com/wp-content/uploads/2019/10/python-640x410.png", "height": "410", "width": "640" }, "datePublished": "2021-12-11T11:51:14+0900", "dateModified": "2021-12-11T11:51:14+0900", "author": { "@type": "Person", "name": "editor" }, "publisher": { "@type": "Organization", "name": "f@ctor", "logo": { "@type": "ImageObject", "url": "", "width": "", "height":"" } }, "description": "目次 1. Qtでディスプレイの拡大・縮小のスケールを取得する2. pythonで青空文庫にある夏目漱石の書籍をスクレイピングする3. 業界未経験のプログラミング初心者が実務で自動化スクリプトを作る際にぶつかった壁4. 【python】Bookmarkしておきたいリソース3選5. Flask入門③~画像の表示~6. 【Colab / Python】気象庁API – 気象データの収集7. […]" } </script> <!-- /schema --> <!--l-footer--> <footer class="l-footer"> <div class="container"> <div class="pagetop u-txtShdw"><a class="pagetop__link" href="#top">Back to Top</a></div> <div class="widgetFoot"> <div class="widgetFoot__contents"> </div> <div class="widgetFoot__contents"> <aside class="widget widget-foot"><h2 class="heading heading-footer">タグ</h2><div class="tagcloud"><a href="https://miofactor.com/tag/%e3%81%9d%e3%81%ae%e4%bb%96/" class="tag-cloud-link tag-link-13 tag-link-position-1" style="font-size: 8pt;" aria-label="その他 (1個の項目)">その他</a></div> </aside> </div> <div class="widgetFoot__contents"> </div> </div> <div class="copySns "> <div class="copySns__copy"> © Copyright 2024 <a class="copySns__copyLink" href="https://miofactor.com">f@ctor</a>. <span class="copySns__copyInfo u-none"> f@ctor by <a class="copySns__copyLink" href="http://fit-jp.com/" target="_blank">FIT-Web Create</a>. Powered by <a class="copySns__copyLink" href="https://wordpress.org/" target="_blank">WordPress</a>. </span> </div> </div> </div> </footer> <!-- /l-footer --> <script type="text/javascript" src="https://miofactor.com/wp-includes/js/comment-reply.min.js?ver=6.4.1" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script> function toggle__search(){ extra__search.className="l-extra"; extra__menu.className="l-extraNone"; menuNavi__search.className = "menuNavi__link menuNavi__link-current icon-search "; menuNavi__menu.className = "menuNavi__link icon-menu"; } function toggle__menu(){ extra__search.className="l-extraNone"; extra__menu.className="l-extra"; menuNavi__search.className = "menuNavi__link icon-search"; menuNavi__menu.className = "menuNavi__link menuNavi__link-current icon-menu"; } </script><script>Array.prototype.forEach.call(document.getElementsByClassName("css-async"),function(e){e.rel = "stylesheet"});</script> </body> </html>