Pythonでスクレイピングする方法としては既存のライブラリであるScrapyやdemiurge等を利用するという方法がありますが、 今回はPython3.5から追加されているAsync構文を利用して自作してみようと思います。 なおasync・awaitとはなんぞやという説明は行いません。 async・await構文の使い方はこちらの記事が参考になりました。 環境 Python3.5.0 beautifulsoup4==4.4.1 How To まずはWebサイトのダウンロード部分から import asyncio import urllib.request class Downloader: def __init__(self, urls): self.urls = urls def run(self): loop = asyncio.get_event_loop() return lo
「Nginxをダウンタイム・ゼロで入れ替える方法」で書いたように、/usr/local/nginx/ のNginxを version 1.0.13 に更新しました。これとは別に、catyというユーザーアカウントのホームディレクトリ内にNginxをインストールして、Nginx+uWSGIとCatyの実験をしようとしています。 Nginx+uWSGIは、Catyに限らず一般的なWSGIアプリケーションを稼働させる良い環境を提供します。簡単に紹介しましょう。 内容: WSGIとuWSGI なぜ Nginx+uWSGI にしたのか uWSGIについて少し インストール とりあえず動かしてみる ソレナリに動かしてみる プロセスの制御など WSGIとuWSGI WSGI(Web Server Gateway Interface)*1は、Pythonで書かれたWebアプリケーションとアプリケーションサー
Falconは、Web APIサーバーの構築に特化したWebアプリケーションフレームワークです。 他のフレームワークがテンプレートエンジンやO/Rマッパなどのリッチな機能を詰め込んだ大衆車だとすれば、FalconはWeb APIサーバーに必要な機能だけにフォーカスし研ぎ澄まされた、F1マシンのようなフレームワークになっています。 Falcon Official Page 特筆すべきは、そのシンプルな設計と圧倒的な速度です。 以下は公式ページに掲載のベンチマークです(2015/11/26時点、PyPy2.5.1での比較結果)。 シンプルなフレームワークと言われるFlaskの27倍、Bottleの1.5~2倍の速度で動作します。 実装も非常に簡単です。以下は、シンプルなJSONレスポンスを返すサーバーの実装例です。 pythonで実行すると8000番ポートでサーバーが立ち上がり、アクセスすると
これは、Python Advent Calendar 2015の3日目の記事です。 何をするのか? WindowsやMacで、いろいろなパッケージを含めてJupyter(IPython Notebook)を使おうとすると、インストールが大変です。そこで、今回は、Dockerを使って、Windows(64ビット)上にJupyterを起動するまでを、説明します。利用できるパッケージは、DockerHubをご確認ください。 サクッとやりたい場合は、Docker Toolboxを使う方法を見てください。 いろいろ試したい場合は、Ubuntuを入れてDockerを使う方法を見て下さい。 Docker Toolboxを使う方法 Docker Toolboxを使うことで、簡単にDockerを使えるようになります。 Docker Toolboxをインストールすると、下記のソフトウェアが使えるようになります
今回は、任意の人物の所得を人口統計データを使って予測する手法をご紹介します。使用するのは 20年前の人口統計データ です。 この例を用いて、関係データベースの情報から予測モデルを導き出す方法と、その途中で起こり得るトラブルについて触れたいと思います。 このデータの優れた点は、データの作成者が下記のようなアルゴリズムの精度をデータに添付している点です。こうした数値はスモークテストの結果評価に役立ちます。 Algorithm Error -- ---------------- ----- 1 C4.5 15.54 2 C4.5-auto 14.46 3 C4.5 rules 14.94 4 Voted ID3 (0.6) 15.64 5 Voted ID3 (0.8) 16.47 6 T2 16.84 7 1R 19.54 8 NBTree 14.10 9 CN2 16.00 10 HOODG
Hacker School在籍中、ネットワーキングの理解をより深めたいと思い、小規模なTCPスタックを書いてみようと思い立ちました。個人的には、C言語よりもPythonの方になじみがありましたし、その頃ちょうど、パケット送信を 非常に簡単に する scapy ネットワーキングライブラリも見つけたところでした。 そんなわけで、 teeceepee を書き始めました。 基本的な構想は次のとおりです。 TCPパケットを送信可能にするRaw socketを開く google.comを取得するためにHTTP要求を送る 応答を取得しパースする 成功を祝う 適切なエラー処理などについてはさほどの注意も払わず、ただただウェブページを取得し、勝利を宣言しようと思っていました(^_^) ステップ1:TCPハンドシェイク 手始めは、GoogleとのTCPハンドシェイクです(以下は必ずしも正しく動作しませんが、原
ここHumanGeo社ではPythonを使うことが多く、それは極上の楽しみでもあります。美しく機能的なコードを短時間で記述するのにPythonはうってつけで、私個人にとっても一押しの言語です。仕事に限らずプライベートでも使っています。そんな素晴らしいPythonですが、欠点がないわけではありません。それはあまりにも遅いことです。幸いPythonには、コードをプロファイリングするための優れたツールがいくつかあるので、コードの美しさと速さを共存させることができます。 HumanGeoで働き出した頃、実行に長時間を要すプログラムのボトルネックを探り、何とかしてそれを速くさせるという仕事を担当しました。その内容は、 cProfile や PyCallGraph ( ソース )、はたまたPyPy(高速なPython用代替インタプリタ)などの各種ツールを使って、プログラムを最適化するためのベストな方法
(訳注:2016/1/5、いただいた翻訳フィードバックを元に記事を修正いたしました。) よくある主観的で痛烈な意見を題名に付けたクリックベイト(クリック誘導)記事だろうと思われた方、そのとおりです。以前指導してくれた教授から教わったある洞察/処世術は、些細でありながら私の人生を変えるマントラとなったのですが、私がこの記事を書いたのはそれによるものです。「同じタスクを3回以上繰り返す必要があるなら、スクリプトを書いて自動化せよ」 そろそろ、このブログはなんだろうと思い始めているのではないでしょうか。半年振りに記事を書いたのですから。ツイッターで書いた Musings on social network platforms(ソーシャル・ネットワークプラットフォームについてじっくり考える) はさておき、この半年の間書き物をしていないというのはうそです。正確には、400ページの 本 を書きました。
Python開発者が大好きな言葉があります。それは”全てはオブジェクトである”です。実際、私自身もPythonのクラスを教えているときに何度も口にしています。多くの人が何度も聞いた言葉かもしれないのですが、私が言う度に生徒は賛同の相槌をしてくれます。結局のところ、Javaにおいて全ては(対象がそうでない場合を除いて)オブジェクトであり、.NETにおいても全てはオブジェクトであると、よく言われています。 しかしPythonにおいて全てがオブジェクトであると言う時、(私の生徒は驚いていましたが)「 全て 」にはクラスも含まれているのです。これはとても筋が通っていて、オブジェクトシステム全体が理解しやすくなります。しかしそれでも、広い視野で物事を見ることは難しいのです。 今回のブログ記事では、Pythonのオブジェクト間のつながりをざっと見ていきたいと思います。そして”全てはオブジェクトである”
Pythonユーザーが集まり、情報交換し、交流するためのカンファレンス「PyCon APAC 2013」が9月13日、14日に都内で開催されました。PyCon APACはこれまでシンガポールで開催されており、今回初めて日本で開催されました。 Pythonは日本ではあまり利用事例が多くありませんが、海外ではGoogleやDropboxなどで使われていることが知られ、人気のあるスクリプティング言語の1つです。Pycon APAC 2013の2日目の基調講演には、そのDropboxの3番目の社員であるRian Hunter氏が登壇、Dropboxの社内事例も交えてPythonの大規模開発について紹介しています。 基調講演の内容をダイジェストで紹介しましょう。 One Million Lines of Python このカンファレンスに呼んでいただけて大変光栄です。日本には初めて来ました。 僕が初
1月に「Pythonを始めるなら、1ファイルの軽量Webフレームワーク「Bottle」がおすすめ」というのを書いたところ、なかなか反響が大きかった。そこで今回は、私がいくらか使ったことがあるPythonのWebフレームワーク6種について、かんたんに紹介するというのをやってみたい。コメントは、私のごく主観的な印象に基づいている。 Bottle(ボトル) http://bottlepy.org/ 「bottle.py」という1ファイルだけでできている。環境構築が不要なので、Python入門に最適。1ファイルに全部入っているので、組み込むのも容易だし、依存リスクもないので、実用にもいいと思う。これだけシンプルなのは、生存戦略としても強い。 CherryPy(チェリーパイ) http://cherrypy.org/ Bottleより大きいが、外部依存がないので、これも環境構築不要で、Python入
わけのかわらないタイトルですが,そのままです. import sys;from itertools import ifilterfalse, count;[globals().__setitem__('compile',lambda bf_src : '[globals().__setitem__("dx",0), globals().__setitem__("dseg",[0] * 32768)] '+bf_src.replace('[',' and [ifilterfalse(bool$( dseg#__getitem__(dx) != 0 and [ True ').replace(']',' ] for i in count()))#next() ] ').replace('.',' and [sys#stdout#write(chr(dseg[dx]))] ').replace(
1章: 始めよう¶ Pythonのインストール Pythonの実装系 Jython IronPython PyPy その他の実装 Linux へのインストール パッケージインストール ソースコンパイル Windows へのインストール Python のインストール MinGW のインストール MSYS のインストール Mac OS X へのインストール パッケージインストール ソースコンパイル Python プロンプト インタラクティブプロンプトのカスタマイズ iPython: より良いプロンプト setuptools のインストール 動作原理を理解する EasyInstallを使ったsetuptoolsのインストール distutilsにMinGWのフックを入れる 作業環境 エディターと補助ツールを使う コードエディター Vimのインストールと設定 その他のエディタを使う その他のバイナ
Python は 1991 年にオランダのプログラマー、グイド・ヴァンロッサムによって開発されたプログラミング言語です。シンプルで直感的な文法と可読性の高さから、初心者から上級者まで幅広く利用されています。現在では Web 開発やデータ分析に加え、 AI や機械学習などの分野でも活用されています。 Python の最大の特徴は、「書きやすさ」と「読みやすさ」です。コードが直感的でわかりやすく、少ない行数で効率的かつシンプルにプログラムを書くことができます。そのため、プログラミング初心者にとって学習しやすく、経験者にとっても生産性の高い開発を行うことが可能です。また Python には豊富なライブラリやフレームワークが揃っており、初心者でも高度なアプリケーションやシステムを容易に開発できるのが魅力です。 Python は多くの企業や研究機関で採用されており、大手 IT 企業でも活用されていま
とりあえず資料貼っておきます. そもそも何でお前が Python の発表してるんだって言われるかもしれませんが, 許してくだしあ>< で,懇親会で LT 出来るという事なので急遽, インデントのせいで Python を嫌っている人に 「じゃぁ インデントしないで書けばいいじゃん」 というプレゼンをしました. (所属を asakusa.rb にしたのに誰も突っ込んでくれませんでした) インデントをブロックとして使ったほうが良いと考えているので, 使わないで書くのは大変ですが,出来無いと言われると悔しいので ちゃんと出来る方法を書きました. ちなみに end 書けばいいじゃんは「うじひさ」のネタ インデントを使わない(ワンライナ)は 昔,lambda を覚えるときに id:nishiohirokazu に教えてもらったネタです.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く