はてなキーワード: スクレイピングとは
別に何の言語でも良いけど、とりあえず自分が手を出せそうなpythonを題材にする
恥ずかしながら、Webアプリケーションの世界しか知らないから、有効な使い道が分かっていない
Pythonを使えば、スタンドアローンなアプリケーションも作れるし、コンソールベースのバッチも作れるって言うのは分かる
でも、自分が思い浮かぶサービスは、ブラウザベースのアプリケーションで事足りる
例えばwebページのスクレイピングをして、その結果を分析してユーザーが見たい形式で表示するアプリケーションを作りたいとする
軽く頭の中で設計すると、分析の要件定義さえ出来れば、jsとphpとWebサーバー周りをこねくり回せば大体作れるだろうな…っていう結論にいたる
いわゆるOA分野とか、コンピューターを主に使用する作業の、自動化が流行っている。
製品で言えば、RPAとか、ノーコード、あるいはSaaSやパッケージソフトとか。
OfficeについてるVBAを使うとか、Pythonでスクレイピングとか、そういうのも併せて。
いわゆるマクロ的な何かで、タスクを自動化する、という考え方だ。これは昔からあったとも言えるし、製品や方法論がここ数年、急激に増えて、環境が激変したとも言える。
さて、個人が、その責任の範囲で、自己のタスクを自動化するのは、組織が禁止しているやり方でなければ、それについてとやかく言うつもりはない。
問題は、組織内部での自動化の推進や、それを補助するコンサル、あるいはソフトウェアのメーカーやベンダーだ。
すべてが駄目というわけではない。
「自動化で単純な作業から解放されて、クリエイティブな作業をすれば良い」
言い換えよう。今挙げたようなことを言う(書く)メーカーやベンダー、あるいはコンサルから個人まで。それらは皆、地雷だ。関わってはいけない人だ。
====
何故か。それは彼らが現実を見ていないからだ。そして、その現実を見ていないことが、軋轢を生むからだ。もしかしたら現実を見た上で、しらばっくれてる人も居るかもしれないが、タチの悪さは変わらない。
困ったことに、彼らの言う「単純作業から解放されてクリエイティブな仕事を」は、一見、理想的な環境に見えるのだ。
いや、実際、理想的ではあるのだ。現実的でないという問題さえ目をつむれば。
「世の中には2種類の人間がいる」という、使い古されたレトリックを、労働分野に応用してみよう。
すなわち、言われたことを淡々とやり続けることを好む人と、抽象的な指示や課題に対して、具体的な対応を行うことを好む人だ。
もう少し具体的に書けば、「言われた作業を淡々とやる人」と「創意工夫して結果を出そうとする人」になる。
さて、前者の、言われた作業を淡々とする人にとって。自動化は、己の存在意義と競合する。つまり、自動化されてしまったら、仕事がなくなる。
意識の高い社員や、コンサル、ソフトウェアのメーカーやベンダーの言うような「クリエイティブな仕事」なんて興味がない。
そういう人を「意識が低い」「生産性が低い」と卑下するのは簡単だ。だが、それは何も事態の解決にはつながらない。
単純作業の自動化がなされた時、その人たちに襲いかかるのは、「クリエイティブな仕事」という、安定した手順も方法論もなく、それでいて成否は存在する、という苦痛のような仕事への移行なのだ。
そして少なからぬケースで、単純作業を淡々と行うことこそ仕事、と捉え、そう働いてきた人は、クリエイティブな仕事とやらでは成果が出せない。ただ苦しむだけになる。
おそらく組織としての生産性は上がるだろう。それをもって成果とするなら、それはそれで矛盾はない。
ただし「働き方改革」のような題目を掲げて、自動化を進めていたのであれば。それは善人面をして、人を地獄に蹴り落とす所業だ。本稿のタイトルで「信じるな」と書いたのは、まさにここにある。
この話には、日本の雇用に関する、法律、行政の態度や、判例なども影響してくる。
前述したような、単純作業を奪われ、苦痛に満ちた苦手な仕事にたたき落とされた人は、どうなるか。
第一に、会社を去るという選択肢はある。だが、このご時世だ。今と同等の条件すら見つかるかどうかは怪しい。
それを自業自得と嘲笑するのは簡単だ。改善を肯定し、生産性の向上を是とし、発展を求める価値観からすれば、矛盾はないのだ。それが倫理的に正しいことなのかは、私にはわからないが。
第二に、苦しみながら会社にしがみつくという選択肢もある。正規雇用の場合、これが簡単に成立してしまう。「クリエイティブな仕事」をさせた成果がボロクソに悪くても、本人の意図的な手抜きなどがない限り、会社は簡単には社員を解雇できない。
はて、本人も苦しんでいることが多い、機能不全の社員を雇用し続けることが、生産性の向上や、働き方改革、ワークライフバランスなどにつながるのか、私は甚だ疑問だ。
つまり、業務の自動化、省力化を目的にするのは、それ自体が破綻を招きやすいのだ。それで浮いた人的コストを、どのようにするか。適材適所で別の仕事をあてがえるのか、あるいは解雇して雇用コストを削減するのか。
どうあれ、簡単なことではない。配置転換の教育コストを見積もるのは簡単ではないし、非正規だからと大量に解雇すれば、それだけで負の風評が生まれたりもするのだから。
人は、自分と異質な人に対して、理解が及ばないことがある。これ自体は仕方が無いことと言える。誰しもがわかり合う、なんてのは現実的ではないからこそ、フィクションで度々取り上げられる題材なのだ。
しかしながら、業務の自動化を改善と捉え、自身が単純作業を嫌う人の中には、少なからぬ割合で、単純作業を延々と行い、その労働時間を以て成果となす考え方の人を、理解していない、あるいは想定していないケースが多い。
その不理解や想定不足は何を生むのか。自動化の導入失敗や、同僚からの強い反発だ。決してプラスの結果ではない。その現実から目を背けてはいけない。
だからね。
「単純作業から人を解放したい」とか「空いた時間でクリエイティブな仕事ができるようになる」なんて、手放しで言っていたら。
その人たちを、信じちゃあいけないよ。
蛇足。
筆者は、別に、「単純作業を淡々とやることで鬻ぎたい人」を肯定するつもりはない。
少なくともデスクワーク、パソコンでの仕事等であれば、そういった人は滅びるべくして滅びるだろうと考えている。
だが、彼らに引導を渡すのは、個人や、少人数程度による「カイゼン」的な何かではない。個人や少人数による「カイゼン」が引き起こすのは、せいぜいが内部分裂や、一部の人に苦痛を与えるだけなのは、前述した通りで。
引導を渡す、という次元の話で言うと、おそらくは、そういった非効率的な人員を抱え込んだ組織の崩壊(企業で言えば倒産など)のような、圧倒的かつ、個人で抗うことに意味がない流れになると考えている。
もちろんその場合、多くの社員が路頭に迷うだろう。クリエイティブな仕事がどうとか言っていられる状況ではなくなるのは明白だ。
そういう未来が見えているからこそ、ミクロな視点でしかモノを見ずに、「自動化で業務を改善して~」「クリエイティブな仕事を~」というおためごかしを唱える人には、関わってはいけないと考えているのだ。
なんか普段使いのPCにもLinuxを入れろみたいなのが話題だけど
これが別途用意した開発環境だとある程度で諦めたりしちゃうけど
例えばアップグレードしたらX.org関係がぶっ壊れてGUI出なくなったらマジで困る
必死でX.orgを修復する過程でドライバ周りやカーネル周りに詳しくなる
一括で変換して保存したりお気に入り部分だけを切り出したりしようとしてffmpegに無茶苦茶詳しくなる
FANZAでセールしてないかスクレイピングしてクロールかけたり
なんならFANZAが閉店したときのために漫画コンテンツをキャプチャしてダウンロードしておいたり
家の中でスマホでエロコンテンツ見たくなったらWebサーバ建てたり配信サーバ建てたり
従業員50人ぐらいの会社でwebサーバー構築したり在庫管理や会計ソフトの連携システムを自社開発して運用したり、スクレイピングでデータ収集して統計作ったりPCやネットワークのトラブル対応したりいろいろやってる。
仕事は一日12時間以上労働がデフォで土日でも普通に電話がかかってきて休みっぽい休みがとれるのは半分ぐらい。
時給換算するのが恐ろしい。
俺以外はみんな、システムは簡単に作れてトラブルが起きないのが当然だと信じて疑わない。
俺がやってる仕事を外注したらどれだけ金がかかるか全然わかってない。
会社が今ももってるのは、仮に外注して作ってたら金なくてとっくに会社がなくなってたようなシステムを俺が代わりに作ってしまったからと言ったっていい位だ。
それでいて、新しいシステムを作りたい、こういうことをしたい、みたいな話が出ても、それを作ることによる費用対効果を説明できる者がいない。
ひどい場合だと、社員一人が月に一度の作業で10分の時間短縮を実現するためのツールを、俺が一ヶ月かけて作ったこともある。もちろん事前にその無駄について口を酸っぱくして説明しても無駄。
なかなか要望を言語化しないのにとにかく作って欲しい困っていると言われるのでなんとか色々聞き出して形にしたものも、使うのは最初の一ヶ月だけとかザラ。
それでも会社にとって本当に必要なものが一部稼働し続けているのは幸いではあるのだが、お前がやってるのは外からお金を稼いでくる仕事じゃないんだから、外で稼いでくるみんなが気持ちよく仕事できるようにどんな要望でも叶えるのが当然だみたいなことを日頃から平気な顔で言われる。
導入がノートラブルでも誰も何も言わないのに少しでも問題があればボロクソに叩かれる。俺がこのシステム作ってなかったらあんたら何もできないじゃん、なんて話が通用しない。
システムにログインできない、メールが届かない、パソコンがこわれたとか、そういう問い合わせばかり。問い合わせるときはこういうふうに順序立てていってほしいとか、問い合わせる前にこの資料を見てほしいとか何度説明しても全く聞いていない。
情報リテラシー云々以前の問題があまりにも多すぎてもうそろそろ精神的に限界だが止むに止まれぬ事情があって辞めるわけにもいかなくて辛い。
(WEBエンジニアリング)未経験から(院卒新卒カードを使って)Webエンジニアになって(5年で)年収1000万円(の会社員と同等の手取りを本業副業合わせて)稼げるようになった話
工学部(情報系でない)の修士課程で、画像処理や機械学習を用いた研究をしていた。
PythonやLinuxについては少々経験したが、MVCに関する技術は一切触った事がなかった。
就活して、Web系のC向けの名の知れたサービスを自社開発している企業にエンジニアとして入社することになった。
※当時は今より牧歌的で自分のような人間が入社することができた。今はわからない。
PythonのFWを使ったWebサービスの開発を行なっていた。
とはいえ、腰を据えて開発している時間は少なかった。大きい企業の既存事業にいると開発とは無関係の運用や調整業務がかなりあった。
3年目くらいで副業を始めることにした。
上記の通り業務内で技術力を向上させることがむずかしかったのと、未経験で業界に来ているハンデを抱えていたのである。
Python以外の言語はほとんど書けなかったのでPythonでwebかスクレイピングの案件を探した。
5件ほどお祈りされたが、懲りずに応募し続けてたら採用された。Flaskの案件だった。Flaskは書いたことがなかったが採用された。
当時はその会社に Python が書けるエンジニアがいなかったので重宝されたし、仕事も任せてもらっていた。
契約は週15時間だった。その間にCOVIDが来て全てが在宅勤務になり、気付いたら週30時間まで稼働するようになっていた。。
当初の見込み通り基礎体力は身に付いていったと思う。
最初の案件を納品したあと、次の案件をもらい、段々仕事の幅が広がっていった。
Linuxサーバを触ったりDBサーバを触ったりphpを雰囲気で書いたりDockerfileを書いてECSの環境を構築したりなど。
※Golang, Rust, k8sなど人気の技術の案件は探してもちょうどいいものが見つからないのでチュートリアルをやる以上の勉強はできていない。
ちょうど良さそうな募集があったので応募したところ今度は一回で採用された。
給与も少し上がった。後ほど元の副業の給与も上がり、本業の給与も少しずつ上がった。
年収がいくらなのかよくわからなくなったので、月々の手取りを銀行口座から調べて、年収1000万円の会社員の手取りと比較すると大体同じくらいの金額になっていた。
犠牲にしていることといえば可処分時間くらいだと思っているので、TLDR節に書いた内容についてはそんなに無理がなくある程度再現性があるんじゃないかと思っている。
辛さでいえば大学院のほうが辛かった。
可処分時間ということでいえばCOVIDで通勤時間が無くなった影響はそれなりにある。
自分について
・要領は決していい方ではない
要領がいい人なら5年も掛けずもっと早く辿り着くのではないか。
今回、特にジョブホッパー的な動きはしていない。各職場(案件)に恵まれたこともあるし、器用さが足りないといえばそうだと思う。
エージェントは中抜きされるという意見もあるが、自分はSNSは長続きしないし、勉強会もあまり肌に合わずほとんど出席することはないのでエージェントを通してしか案件を見つけられていない程度の行動力しかない。
年収についてはおおむね満足するようになり、人間とは面白いもので段々欲がよく出てくるようになった。
モダンな技術は、レガシーな技術よりも、おしなべて責任範囲が明確であり、何かあったときのリカバーがききやすかったり、謎の負債が含まれるリスクも少なく、幾分か安心して開発ができる。枯れた理論は好きだが、新しい技術を先回りして身につけることにも興味が湧いてきた。
プログラマーに尋ねると、パソコン活用できて便利になっているという答えが返ってくる。
ゲーマーやYouTuberもパソコンで稼ぐ手段なので便利と返ってくる。
自分はプログラミングなんて趣味でVisualStudioやJupyterLab、Matlabを触るくらいだ。
Python、Julia、VBA、M言語、C++、C#とか素人なりに書くが、どうも便利になっているように思えない。
CUIでログの処理、スクレイピングとかはいいが、人に見せるためのグラフは毎回細かい調整が必要だし、
GUIはエクセルくらいマウス操作できるようになればいいのに、GUIのフレームワークだと操作がひっかかる。
ゲームはしない。
PhotoshopやIllustratorも一通り操作はできるようになったが、色々と不便だなと思うことが多い。
動画編集だとDaVinci Resolveでカットなどは便利だなと思ったけれど、Fusionだと複雑過ぎるのか、ネットで調べてもなかなか出てこないし、
これ出来ないかなと思うことが出来ない。
図を作ってアニメーションつけて説明しようとすると、途端に難しくなる。
AnsysやCOMSOLなどがあれば流体シミュレーションなどやれるのだろうけど、
そういったソフトはなかなかない。
と思ってちょっとググってみたんだけど、実現できなそうなんだよなぁ
だから、VBAでスクレイピングはできそうだけど、サーバーは無理みたい
Excelファイルの内容を社内のどこからでもExcel立ち上げずにWebブラウザで見れると便利かなと思ったとき、
ExcelファイルをDBの代わりにするみたいなのはVBAでは無理に思えたんだけど、どうなんだろ…
あと、Pythonの強みは何でもglueとしてくっつけるところにあるわけで、
対象がExcelだけならPythonである必要はない、VBAでもRubyでもExcel操作はできる
でも、機械学習や人工知能系のみならず、PythonはExcelと膨大な何かを組み合わせることができるわけで、
でも、井の中の蛙大海を知らず、と言うけど、別に井の中で済むなら問題ないというか、
それどころか大海を知ってしまうと、自分の身の丈の小ささにショックを受けたり、