ブログを移転しました
Zoomのセキュリティを高める設定

皆さんテレワーク行っていますか?
コロナウイルスの影響で大いに進んだ働き方改革ですが、客先への訪問禁止を受け、急速にWeb会議システムに注目が集まっています。
今日はそんなWeb会議システムのZoomに注目して紹介していきたいと思います。
「そもそもZoomってなんなの?」
「テレワークでZoomを使いたいんだけどどうやって使うの?」
「セキュリティが甘いらしいけど、どう甘いの?」
「安全に使うための設定方法はどうやるの?」
今回の記事ではZoomのインストールから共有会議の参加方法から説明します。
また、Zoomのセキュリティが弱いという不安を解消するためセキュリティの弱点と対策法を書いていきます。
Zoomの使い方
そもそもZoomとは?
Zoomとは、Web会議のシステムであり、昨今のコロナ事情の中で急速に注目を集めています。主催者のみIDを取ればいいので簡単にWeb会議をすることができます。
ただし、セキュリティについてはユーザビリティとトレードオフでありセキュリティを強化するには設定で工夫する必要があります。
Zoomの利点(メリット)
無料であること
有料枠では一回の会議で40分以上の会議を行いたい場合などは必要です。
サインインIDが不要
Zoomは主催者のみアカウントを取得する必要があるものの、参加者はIDが不要です。
セキュリティ強化のため設定により会議にサインインIDが必要とする設定も可能です。
ブラウザさえあればどのデバイスでも動作する
ブラウザベースで動くZoomはPCだけでなくスマホでのアクセスも可能です。
Web会議システムならではの画面共有も可能
画面共有も画面の一部を共有する、といった使い方が可能です。
録音・録画もできる
クラウドに保存する方法と、ローカルに保存する方法があります。出席した会議を自動で録画してくれる機能もあります。
Zoomのインストール
ZoomにはWeb版とアプリをインストールする2種類の会議方法があります。
公式ではアプリをインストールすることを推奨しております。
しかし、社内環境ではアプリをインストールすることが許されていないケースもあり
Web版での使用もありうると考えます。
今回はZoomのアカウントを作成してみます。
1.右上のサインアップをクリック

2.誕生日を入力して、続けるをクリック

3.登録するメールアドレスを入力してサインアップ、登録メールが発信されます。


4.登録メールからメールアドレスを承認します。

5.名前、役職、組織名、メールアドレスを入力し、チェックボックスにすべてチェックをいれ続けるをクリック

6.パスワードを入力し、アカウントの作成は完了

7.招待する人がいれば入力します。そのままスキップでOK


ミーティングの作成
ミーティングの作成はマイページのミーティングから作成を行います。

それぞれの項目の推奨設定は下記となります。
| 設定項目 | 説明 |
|---|---|
| トピック | 参加者から見える議題のタイトル |
| 説明 | 参加者から見えない議題の説明 |
| 開催日時 | そのまま。会議をする日時を設定 |
| 所要時間 | 会議時間。無料プランは40分まで |
| タイムゾーン | GMT+9:00 大阪、札幌、東京 |
| 定期ミーティング | 複数回スケジュールする場合は入力 |
| ミーティングID | 自動的に生成を推奨 |
| ビデオ | どちらもオフで良い。後から設定は変えられる |
| 音声 | コンピューター通話のみを推奨。 |
| ホストの前の参加を有効にする | 待機室を有効にする場合はチェック推奨 |
| 入室時に参加者をミュートにする | そのまま。複数人が同じ部屋で参加する場合はオンにすることを推奨 |
| 待機室を有効にする | 有効を推奨。ホスト以外の参加者がURLやID,パスワードなどでミーティングに参加したとき,ホストの許可待ちの状態にできる |
| 認証されているユーザーしか参加できません | Zoomアカウントを持っている場合のみ参加できる。チェック非推奨だが機密情報を取り扱う場合はチェック推奨 |
| ローカルコンピュータにミーティングを自動記録 | ミーティングの画面,音声を動画で記録,自動保存可能。セキュリティ的に非推奨 |

ミーティングの共有
招待状をコピーするをクリックしてメール文面をコピーするだけでOKです。
パスワードなどは求められたら入力するものとおぼえておきましょう。

Zoomのセキュリティ
初期設定ではGoogleの検索結果から見えちゃったりするのが問題だったりします。
見知らぬ第3者が会議の中に入れたり、パスワードを設定していない場合、ミーティングIDがわかれば誰でも会議に参加できるZoomの仕様に問題があります。
しかし、対策を取ることでセキュリティ強度は上げることができます。
また、Zoomのドメインを偽装したフィッシングも多いので注意が必要です。
2020年頭からこれまでに“zoom”の文字列を含む新ドメインが3,300も確認されているそうです。(参考:
)
実際にZoomの脆弱性を上げるために必要なこと
・ランダムパスワード生成
・ミーティングにパスワードを設定する(ワンクリックURLは使わない)
・待機室を有効にする
Zoomの設定はサインイン後に設定タブから変更ができます。

Zoomのパスワードは下記の4点で設定できます。
通常すべてONになっていますが、
「ワンクリックで参加できるように、ミーティングリンクにパスワードを埋め込みます。」はOFFにしておきましょう。
これでURLにパスワードが埋め込まれず、参加者は主催者から送られたパスワードが必要となります。

待機室を使う
第三者がそのまま会議に入ってこれないよう、待機室を使いましょう。こちらも設定から変更することができます。

まとめ
いかがでしたでしょうか?
今回の記事では
・Zoomの導入
・Zoomのセキュリティを高める設定
をまとめました。
なんとなくZoomのセキュリティは弱んじゃないの?という知識を持っている方は多いと思いますが、設定次第で強度は高めることができます。
これを機会にZoomをいれてみても良いのではないでしょうか。
Pythonでファイル処理(csv・sqlite)をまとめてみた

Pythonでいろいろな処理を自動化し
ログなどを残す際はファイル出力が必要となります。
今回の記事では数あるPythonの利用方法の中で
といったファイル保存に特化した内容をまとめています。
使うときには忘れがちな保存関係をまとめました。
それでは実際のコードを用いてファイルの読み書きを行います。
CSVでファイルを読み書きする
学術系では必須のcsvの入出力について学びます。
一般企業ではエクセル形式への読み書きが多いと思います。
csvは軽量のテキストなのでデータ処理の基本となります。
一次元配列のcsvへの書き込み
import csv list = ["python","csv","test"] with open('sample1.csv', 'w') as f: writer = csv.writer(f, lineterminator='\n') # 改行コード(\n)を指定しておく writer.writerow(list) # listを渡す
二次元配列のcsvへの書き込み
二次元配列の書き込みにはwriterowsメソッドを使います。
list2 = [[1, 2, 3], [10, 20, 30], [100, 200, 300]]
with open('sample2.csv', 'w') as f:
writer = csv.writer(f, lineterminator='\n') # 改行コード(\n)を指定しておく
writer.writerows(list2) # 二次元配列の場合
withを使わずにCSVに書き込みする
with句を使わずに下記のように書くこともできます。
読み書きモードは指定する モードは
r 読取 w 上書 a 追記
となります。
import csv f = open('sample3.csv', 'a') writer = csv.writer(f, lineterminator='\n') writer.writerow(list) writer.writerows(list2) f.close()
csvファイルの読み込み
import csv file = './sample1.csv' f = open(file, 'r') rows = csv.reader(f) for row in rows: # 一行ずつ読み出す print(row) f.close()
pandasを使ってcsvを読み取る
簡単にデータフレーム化もできます。
import pandas as pd df = pd.read_csv('sample1.csv')
sqlite3を使ってデータベースに書き込む
sqlite3を使ってデータベースを作る
import sqlite3
from contextlib import closing
dbname = 'database.db'
with closing(sqlite3.connect(dbname)) as conn:
c = conn.cursor()
# executeメソッドでSQL文を実行する
create_table = '''create table users (id int, name varchar(64),
age int, gender varchar(32))'''
c.execute(create_table)
conn.close()
sqlite3を使ってデータを挿入する
import sqlite3
from contextlib import closing
with closing(sqlite3.connect(dbname)) as conn:
c = conn.cursor()
# SQL文に値をセットする場合は,Pythonのformatメソッドなどは使わずに,
# セットしたい場所に?を記述し,executeメソッドの第2引数に?に当てはめる値を
# タプルで渡す.
sql = 'insert into users (id, name, age, gender) values (?,?,?,?)'
user = (1, 'Taro', 20, 'male')
c.execute(sql, user)
# 一度に複数のSQL文を実行したいときは,タプルのリストを作成した上で
# executemanyメソッドを実行する
insert_sql = 'insert into users (id, name, age, gender) values (?,?,?,?)'
users = [
(1, 'Taro', 20, 'male'),
(2, 'Shota', 54, 'male'),
(3, 'Nana', 40, 'female'),
(4, 'Tooru', 78, 'male'),
(5, 'Saki', 31, 'female')
]
c.executemany(insert_sql, users)
conn.commit()
select_sql = 'select * from users'
for row in c.execute(select_sql):
print(row)
conn.close()
pandasを使ってデータベースの読み書きをする
pandasを使ってsqlite3を読みだす
import pandas as pd import sqlite3 dbname = 'database.db' conn = sqlite3.connect(dbname) c = conn.cursor() df_sql = pd.read_sql_query("select * from users", conn) conn.close()
さらにdataframeでsqlite3に行追加する
df_ins = pd.DataFrame(6, 'yuta', 24, "male", columns=df_sql.columns) df_ins.to_sql("users", conn, if_exists='append', index=None)
テーブルまるごとをDataFrameのレコードで入れ替える場合はif_exists='replace'とする。
Python学習のおススメ
Pythonはパターンで学習できます。
実際のコードを写経して身に着けるのがおすすめです
簡単な実行文から体系的に学べるPyQがおすすめです。
ブラウザ上でPythonに特化した写経を1000個以上実施可能です。
初学習で終える自信がない方向けの最初の一冊は
「Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ」がおすすめです。
2冊目は(あるいは学習意欲の高いかたは)Pythonの基礎知識が隅々まで解説されている「入門Python3」がおすすめです。
業務で自動化をしたい、など目標がふんわりとしている方には
「退屈なことはPythonにやらせよう」もおススメです。
こちらの本は自動化に集中した内容となっており、流し読みで自分のスキルを高めることができます。僕もだいぶお世話になりました(笑)
有料の動画講座に関して言えばUdemyさんがおすすめです。
こちらのサイトは初学がある程度すすんでいる方向けです。
有料だけに講座ごとのジャンルが豊富で学びたい講座を選択して選ぶことが出来ます。
PythonではAI・データサイエンスなど最先端のIT技術からプレゼンなどビジネススキルに関する講座まで10万以上(※海外講座含む)あるため、自分が学びたい講座をみつけることができます。
まとめ
今回の記事では
をまとめました。
お疲れさまでした
Pythonでメール通知とSlack通知

Pythonは自動化を行う上で有益な言語です。
自動化を行う上で知っておくと便利な知識はズバリ通知です。
「メールで処理が終わった後に通知が欲しい」
「Slackに処理完了の通知が欲しい」
など、PDCAを回す上で処理完了の通知が来ると便利です。
今回の記事では「通知」に焦点 を当てて紹介していきます。
メール通知

単純な通知を送信したいときの通知方法を紹介します。
Pythonにはsmtplibという標準ライブラリがあり、基本的にはMIMEを作成して送信するだけです。
ちなみにMIMEとは
MIMEとは、TCP/IPネットワーク上でやり取りする電子メールで、当初の規格で唯一記載することができたASCII英数字以外のデータ(各国語の文字、添付ファイルなど)を取り扱うことができるようにする拡張仕様。
です。
早速smtplibでメール送信を行っていきましょう
認証なしの場合
社内での環境などSMTPサーバーへの認証が不要な場合こちらでOK
import smtplib from email.mime.text import MIMEText # 送受信先 to_email = "発信先のアドレス@xxx.com" from_email = "発信者のアドレス@xxx.com" # MIMETextを作成 message = "メール本文" msg = MIMEText(message, "html") msg["Subject"] = "テストメール" msg["To"] = to_email msg["From"] = from_email # サーバを指定する server = smtplib.SMTP("メールサーバー", ポート番号) # メールを送信する server.send_message(msg) # 閉じる server.quit()
認証ありの場合
server.send_message(msg)の前に、認証アカウントとパスワードを入力すればOKです。
import smtplib from email.mime.text import MIMEText # 送受信先 to_email = "発信先のアドレス@xxx.com" from_email = "発信者のアドレス@xxx.com" # MIMETextを作成 message = "メール本文" msg = MIMEText(message, "html") msg["Subject"] = "テストメール" msg["To"] = to_email msg["From"] = from_email # サーバを指定する server = smtplib.SMTP("SMTPサーバー", ポート番号) # 認証を行う server.login(account, password) # メールを送信する server.send_message(msg) # 閉じる
Gmailを利用したメール通知

続いてGmailを用いてメール通知を発信する方法を紹介します。
SSLを用いて接続します。
Gmail側の設定
http:// https://support.google.com/accounts/answer/6010255
の手順どおり、「安全性の低いアプリ」を有効にする必要があります。
Gmailの設定で変更ができますが、セキュリティ強度が落ちるため、専用のアカウントを用意するのが望ましいです。
上記URLへアクセスしたのち、セキュリティをクリックします。

安全性の低いアプリのアクセスへスクロールし、アクセスを有効にします。


これで準備はOKです。
Gmailでメールを発信する
MIMEの作り方はsmtplibのときと同様です。
import smtplib import ssl from email.mime.text import MIMEText # 以下にGmailの設定 gmail_account = gmailアカウント gmail_password = gmailパスワード # メール送信先 mail_to = "送信先のアドレス@xxx.com" # メールデータ(MIME)の作成 subject = "メール送信テスト" body = "メール送信テスト" msg = MIMEText(body, "html") msg["Subject"] = subject msg["To"] = mail_to msg["From"] = gmail_account # Gmailに接続 # メール送信処理 server = smtplib.SMTP("smtp.gmail.com", 587) server.starttls() server.login(gmail_account, gmail_password) server.send_message(msg) server.quit() print("ok.")
SSLでメール発信するためには接続時に指定してあげればOKです。
# Gmailに接続 server = smtplib.SMTP_SSL("smtp.gmail.com", 465, context=ssl.create_default_context()) server.login(gmail_account, gmail_password) server.send_message(msg) # メールの送信 print("ok.")
添付ファイルをつける
添付ファイルをつけて送信する場合は添付ファイルのパスを設定し、添付処理を行います。
import smtplib import ssl from email.mime.text import MIMEText from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email.header import Header from email import encoders #Gmailの設定を書き込む gmail_account = gmailアカウント gmail_password = gmailパスワード # メールの送信先 --- (*2) mail_to = "送り先のアドレス@xxxx.com" # 添付ファイルのパス file_path = "./test.zip" # メールデータ(MIME)の作成 subject = "添付ファイル送信テスト" body = "添付ファイルの送信テスト" encoding = 'utf-8' msg = MIMEMultipart() msg["Subject"] = Header(subject, encoding) msg["To"] = mail_to msg["From"] = gmail_account msg.attach(MIMEText(body, 'plain', encoding)) # 添付ファイル(ZIP)をメールに追加 attach = MIMEBase('application','zip') with open(file_path, "br") as f: attach.set_payload(f.read()) encoders.encode_base64(attach) attach.add_header('Content-Disposition', 'attachment', filename='attachment.zip') msg.attach(attach) # Gmailに接続 server = smtplib.SMTP_SSL("smtp.gmail.com", 465, context=ssl.create_default_context()) server.login(gmail_account, gmail_password) server.send_message(msg) # メールの送信 server.quit() print("ok.")
slackに処理完了通知を送る

slackへ完了通知を送る際は、webhookを利用するのが簡単です。
webhookの参照方法
https://slack.com/signin?redir=/apps/new/A0F7XDUAZ--incoming-webhook-
上記へアクセスしサインインします。

通知したいチャンネルを選悪し、Incoming Webhookインテグレーションの追加をクリック

webhook URLが記載されているので、コピーして控える。

実際にslackへ通知を送ってみる
slackへの通知はjsonをpostすればOKです。
import json import requests # webhookURLを指定 webhook_url = "https://hooks.slack.com/services/TPGNV7872/BUUBZKAHX/xxxxxxxxxxxx" # 送信するテキストを定義 text = "PythonでSlackにメッセージを送る" # Slackに送信する requests.post(webhook_url, data=json.dumps({ "text": text }))
プロキシサーバーを経由してのアクセスはrequestsにploxies引数を追加してやればOK
import json import requests net_proxies = {'http': 'プロキシサーバー:ポート', 'https': 'プロキシサーバー:ポート' } # webhookURLを指定 webhook_url = "https://hooks.slack.com/services/TPGNV7872/BUUBZKAHX/xxxxxxxxxxxx" text = "PythonでSlackにメッセージを送る" # Slackに送信する requests.post(webhook_url, proxies=net_proxies, data=json.dumps({ "text": text }))
まとめ
今回の記事では
を紹介しました。
処理についても大事ですが、完了を自動化することで効率を飛躍的に上げることが出来ます。
Pythonを初期から学びたい!という方には
無料の学習サイトではドットインストールhttps://dotinstall.com/ がおすすめです。
ある程度の条件式やループなど初級の内容が動画でまとめられており入門編としてはこれをやっておけば問題ありません。
初学習で終える自信がない方向けの最初の一冊は
「Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ」がおすすめです。
2冊目は(あるいは学習意欲の高いかたは)Pythonの基礎知識が隅々まで解説されている「入門Python3」がおすすめです。
業務で自動化をしたい、など目標がふんわりとしている方には
「退屈なことはPythonにやらせよう」もおススメです。
こちらの本は自動化に集中した内容となっており、流し読みで自分のスキルを高めることができます。僕もだいぶお世話になりました(笑)
有料の動画講座に関して言えばUdemyさんがおすすめです。
こちらのサイトは初学がある程度すすんでいる方向けです。
有料だけに講座ごとのジャンルが豊富で学びたい講座を選択して選ぶことが出来ます。
PythonではAI・データサイエンスなど最先端のIT技術からプレゼンなどビジネススキルに関する講座まで10万以上(※海外講座含む)あるため、自分が学びたい講座をみつけることができます。
お疲れさまでした。
実際のサイトから読み取る初心者向けPythonスクレイピング入門
そんな情報を得た僕はPythonによるスクレイピングを行うことにしました。
ほぼ0からの学習であり、cssやHTMLも少し読める程度…悪戦苦闘しながらなんとか公開できるまで学習を進めました。
WEB上に散らばっているPythonのコードは基本的な部分であり
記事にするにあたり
と、いったところが僕が悩んだポイントでした。
今回は実例をもとに丁寧に解説したいと思いますので
題材としてソフトバンクの株主価値ともろもろのデータをスクレイピングします。

この記事を読み終えることで、実際のサイトからどのように数字を抜き出すか?
がわかるようになります。
最低限、Pythonとbeautifulsoup、Chromeがインストールされていることを前提に話を進めていきます。
SEO対策としてのスクレイピングはまずはこの記事(基礎編)を終えた上で記事にしていきたいと思います。
スクレイピングとはそもそも何なのか?
クローリングとスクレイピングという言葉があります。
クローリングとスクレイピング
クローリングとは、複数のウェブサイトのリンクをなぞってウェブページを巡回することを言います。また、クローリングをするプログラムをクローラーと呼びます。
ブログを書いている人にはGoogleのクローラーは馴染み深いと思います。
ページをインデックス化し、サイトへの検索を行うものがそれです。
スクレイピングとは、ウェブサイトのHTMLから必要なデータを取得する事を指します。
スクレイピングを行う上での注意事項
サイトによっては無許可のクローリング・スクレイピングを拒否している場合があります。
スクレイピングは人間ではできないような速度で多重のアクセスをかけることが可能なため、株価へのアクセスや電子ジャーナルなど規約で禁止されていることも多いです。
なお、twitterもスクレイピングによるデータ取得が禁止されています。
必須ライブラリ beautifulsoupとrequests
beautifulsoup = 取得したHTMLを解析するライブラリ
requests = URLからHTMLを取得するライブラリ
と、なります。
beautifulsoupとrequestsのインストール
pip install beautifulsoup pip install requests
でインストールできます。
Anacondaをインストールしている方はすでにどちらもインストールされているので不要です。
requestsでURLからHTMLを抜き出し、beautifulsoupで解析する
html = requests.get(url)
urlはhttp(s)://~で指定すればよいです。
プロキシ環境で使用する場合は、requests.get(url, proxies="プロキシサーバー")を指定してください。
それではソフトバンクのページから解析をしてみます。
beautifulsoupでHTMLから要素を抜き出す
import requests
from bs4 import BeautifulSoup
def getBS(url):
html = requests.get(url)
return BeautifulSoup(html.content, "html.parser")
soup = getBS("https://group.softbank/corp/irinfo/stock/stock_value/")
今回はPythonに標準でついてくるhtml.paeserを使用しています。
高速なlxmlを使用する場合は
pip install lxml
で、インストールしておきましょう。
lxmlはC言語で記載されており高速ですが複雑な構造には弱いとのこと
この辺は使い分けを筆者が良くわかっていません^^;
実際にソフトバンクのページから情報を抜きだしてみる
実際のページから情報を抜き出すには、ソースコードを読み内容を探し出すことが大事です。
しかし、Chromeの開発者ツールでは対象のCSSセレクタやXpathを簡単にコピーできる機能があります。
①欲しい情報を右クリック⇒検証

②右側に対象のタグが出るため、Copy⇒Copy selectorでCSSセレクタをコピー

③soup.select(’コピーしたCSSセレクタを張り付け’)
で簡単に取得することが出来ます。
import datetime
import requests
from bs4 import BeautifulSoup
def getBS(url):
html = requests.get(url)
return BeautifulSoup(html.content, "html.parser")
soup = getBS("https://group.softbank/corp/irinfo/stock/stock_value/")
elems_kabunushikati = soup.select(
'#contents-body > div > div > div:nth-child(1) > div > table > tbody > tr > td > strong')
kabunushi = int(elems_kabunushikati[0].contents[0].replace(
" 円/株", "").replace(",", ""))
全体的なコードは上記になります。
cssセレクタをコピーしたあとはタグごと取得されるので.contents[0]でタグの中身を取得しています。
最終的には数値データでほしいので、円/株と桁区切りの「,」を置換して型変換しています。
まとめ
今回は、単純なつくりのサイトからスクレイピングする手法を紹介しました。
まとめると下記の
・WEBスクレイピングにはクローリングとスクレイピングがある
・スクレイピングはHTMLから必要なデータを抜き出すこと
・requestsでURLからHTMLを、beautifulsoupでHTMLを解析する
を、説明しました。
過去記事から読んでくれている方は一気にレベルが上がっているのですが
本サイトでは単純なところは説明を省こうと思います。
完全に初期知識が欲しい!という方には
無料の学習サイトではドットインストールhttps://dotinstall.com/ がおすすめです。
ある程度の条件式やループなど初級の内容が動画でまとめられており入門編としてはこれをやっておけば問題ありません。
初学習で終える自信がない方向けの最初の一冊は
「Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ」がおすすめです。
2冊目は(あるいは学習意欲の高いかたは)Pythonの基礎知識が隅々まで解説されている「入門Python3」がおすすめです。
業務で自動化をしたい、など目標がふんわりとしている方には
「退屈なことはPythonにやらせよう」もおススメです。
こちらの本は自動化に集中した内容となっており、流し読みで自分のスキルを高めることができます。僕もだいぶお世話になりました(笑)
有料の動画講座に関して言えばUdemyさんがおすすめです。
こちらのサイトは初学がある程度すすんでいる方向けです。
有料だけに講座ごとのジャンルが豊富で学びたい講座を選択して選ぶことが出来ます。
PythonではAI・データサイエンスなど最先端のIT技術からプレゼンなどビジネススキルに関する講座まで10万以上(※海外講座含む)あるため、自分が学びたい講座をみつけることができます。
お疲れさまでした。
Proxy環境下にあるPythonの設定方法

企業でPythonを使用していると、PIPなどのコマンドラインが上手く動かないことがあります。
通常、一般の会社では外部のインターネットを閲覧する際にプロキシサーバーを経由します。
このブログでは企業のシステム情報担当者を読者に想定しているため
今日の記事ではプロキシの設定の仕方を学びます。
Proxyを調べる
プロキシの値がわかっていればこの手順は不要です。
直のアドレスではなく、自動構成スクリプトで設定されている場合は
import urllib.request
urllib.request.getproxies()
で調べることが出来ます。
PythonのPIPでのProxy設定
PIPでのプロキシは、--proxyオプションでプロキシサーバーを指定します。
pip install モジュール --proxy=http://user:pass@fooooo.proxy.local:8080
環境変数にプロキシを追加することでもいけるようです。
set HTTP_PROXY=http://user:pass@fooooo.proxy.local:8080
set HTTPS_PROXY=http://user:pass@fooooo.proxy.local:8080
AnacondaのCondaでのProxy設定
Anacondaのproxy設定は.「.condarc」ファイルに記述します。
デフォルトではありませんので、Anacondaのインストールフォルダにテキストを作り
下記を保存しましょう。(インデントは忘れずに)
proxy_servers:
http: http://[プロキシアドレス]:[ポート番号]
https: https://[プロキシアドレス]:[ポート番号]
requestsライブラリのProxy設定
スクレイピングで利用するrequestsライブラリにもプロキシの設定が必要です。
これはgetメソッドを実行するときに引数proxiesを指定してあげればOKです。
import requests
net_proxies = {'http': 'proxyserver:8080',
'https': 'proxyserver:8080'
}
html = requests.get(url, proxies=net_proxies)
まとめ
何番煎じかわかりませんが、Python系のプロキシ設定でつまりそうなポイントを列挙しました。
プロキシは意外といろいろなところで影響してくるので案外あなどれません。
通信関係でエラーが帰ってきたら疑うようにしましょう。
Pythonの学習には実際のコードとともに手を動かすことが重要です。
無料の学習サイトではドットインストールhttps://dotinstall.com/ がおすすめです。
ある程度の条件式やループなど初級の内容が動画でまとめられており入門編としてはこれをやっておけば問題ありません。
初学習で終える自信がない方向けの最初の一冊は
「Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ」がおすすめです。
2冊目は(あるいは学習意欲の高いかたは)Pythonの基礎知識が隅々まで解説されている「入門Python3」がおすすめです。
業務で自動化をしたい、など目標がふんわりとしている方には
「退屈なことはPythonにやらせよう」もおススメです。
こちらの本は自動化に集中した内容となっており、流し読みで自分のスキルを高めることができます。僕もだいぶお世話になりました(笑)
有料の動画講座に関して言えばUdemyさんがおすすめです。
こちらのサイトは初学がある程度すすんでいる方向けです。
有料だけに講座ごとのジャンルが豊富で学びたい講座を選択して選ぶことが出来ます。
PythonではAI・データサイエンスなど最先端のIT技術からプレゼンなどビジネススキルに関する講座まで10万以上(※海外講座含む)あるため、自分が学びたい講座をみつけることができます。
初心者向けPython講座 2日目 jupyterを使いこなそう

昨日の記事ではPython(Anaconda)のインストール方法について執筆しました。
具体的なPythonの記述に入る前に、コーディング環境を整えるのがいいと思います。
Pythonはスクリプト言語なので、手軽にコーディングができます。
やろうと思えばメモ帳でもプログラミングすることは可能です。
しかし、効率的な面でいうとやはりプログラミングには補助があったほうが効率が良いです。
今回はAnacondaについてくるスクリプトである、jupyterについて説明したいと思います。
とはいえ、そんなに難しい話ではありません。
この記事を読まれている方は
「jupyterって何?」
「jupyterを使う利点は?」
「jupyterの効率的な使い方は?裏技は?」
と、いったことが気になるポイントかと思います。
今回の記事では実際にjupyterを動かしてみて、プログラミングの階段をステップアップしてもらえれば幸いです。
今回の記事も例によってWindows10での使い方を解説していきます。
Anacondaをインストールしていない方は下記をご確認ください。
jupyter(jupyter notebook)とは
通常Pythonのプログラムは、○○.pyにメイン関数を書いて実行する or インタープリターで対話式に実行するの2種類で実行します。
短いプログラムであれば問題ありませんが、関数ごとの挙動などをステップ実行したい、ということは多々あります。
jupyterとは、ブラウザで起動するプログラムで、ノートブックと呼ばれる形式にコードを書きこんでいきます。
ノートブックには
という機能を持ちます。
jupyter(jupyter notebook)の使い方・インストール方法
jupyterのインストール
前回の記事でAnacondaをインストールしている方にはもうすでにJupyter はインストールされています。
Pythonを単体でインストールされている方はコマンドラインで
pip install jupyter
を入力し、jupyterをインストールしてください。
jupyterの起動
インストールが終わったらコマンドラインで
jupyter notebook
と打ち込んでください。
ブラウザが立ち上がり jupyter notebookが立ち上がります。
Python3ノートブックの作成
右上にある、NEW▼をクリックし、Python3を選択してください

新規にノートブックが作成され、コードが入力できるようになります。
ためしにprint文でテストしてみます。
一番上のセルに実行したいコードを入力しRunボタンをクリックします。

実行結果はセルの下に表示されます。
現在、Codeとなっている箇所をMarkdownに変更してみます。

Markdownで記載し、Runをクリックします。


Markdownが実行されました。
このように、コードを分割して実行しコードの説明をより具体的に書くことが出来ます。
jupyterをより使いやすくするために
jupyterには拡張機能であるnbextentionsというライブラリがあります。
jupyter nbextentionsのインストール
Anacondaのjupyter拡張機能のインストールは一旦jupyterを終了させコマンドラインで
conda install -y -c conda-forge jupyter_contrib_nbextensions
で、行います。
Nbextentionsというタブが増えているので
disible~のチェックを外すと使用可能となります。
この中でチェックしておくべきものを紹介します。
(気が向いたら紹介記事を書いてみようかな)

おススメのjupyter拡張機能4選
Hinterland(入力補完)
入力中のコードの補完をしてくれます。候補を選びタブで選択することが出来ます。
シンプルに便利

table of contents(2)
markdownで書いた見出しをもとに目次を自動生成します。


Live Markdown Preview (マークダウンのリアルタイム表示)
記載中のMarkDownがリアルタイム表示されるようになります

Codefolding (コードの折りたたみ)
IDEのように関数などを折りたたむことが出来るようになります

まとめ
今回の記事ではJupyter Notebookの使い方について説明しました。
について、簡単にまとめてみました。
実際のコードとともに手を動かすことが重要です。
無料の学習サイトではドットインストールhttps://dotinstall.com/ がおすすめです。
ある程度の条件式やループなど初級の内容が動画でまとめられており入門編としてはこれをやっておけば問題ありません。
初学習で終える自信がない方向けの最初の一冊は
「Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ」がおすすめです。
2冊目は(あるいは学習意欲の高いかたは)Pythonの基礎知識が隅々まで解説されている「入門Python3」がおすすめです。
業務で自動化をしたい、など目標がふんわりとしている方には
「退屈なことはPythonにやらせよう」もおススメです。
こちらの本は自動化に集中した内容となっており、流し読みで自分のスキルを高めることができます。僕もだいぶお世話になりました(笑)
有料の動画講座に関して言えばUdemyさんがおすすめです。
こちらのサイトは初学がある程度すすんでいる方向けです。
有料だけに講座ごとのジャンルが豊富で学びたい講座を選択して選ぶことが出来ます。
PythonではAI・データサイエンスなど最先端のIT技術からプレゼンなどビジネススキルに関する講座まで10万以上(※海外講座含む)あるため、自分が学びたい講座をみつけることができます。

