LoginSignup
1
1

BeautifulSoup(beautifulsoup4)公式ドキュメント日本語翻訳案

Last updated at Posted at 2023-12-11

※なんとか転職活動も落ち着き、一番最初にやり方を教えてもらって書いた初Qiitaがこれなのですが、今見返すとグチャグチャなので徐々に整理・翻訳作業再開します

そもそも Python、BeautifulSoup、スクレイピングとは

 Pythonはプログラミング言語の1つで、おそらく始めに学ぶことが多いHTML&CSSと比べると次のような特徴があります。(なお、HTMLは本当はマークアップ言語と言います。)

①作れる機能は比べものにならないほど多い(※よく利用させてもらっている方の以下のQiita記事だけでも大量に用途が載っています。)
https://qiita.com/python_academia/items/62aefbf4e373cd2aa496
②その分???パーツが細かすぎる

 ②の性質のため、ほとんど最初に import ~ というのを最初に書いて必要なパーツを使うための設定をしてから、コードを書いていきます。そして、この ~ に書くものをライブラリといいライブラリの中に入っている便利機能(の小さいパーツにあたる)プログラム1つ1つをモジュールと言います。


そのため例えば、ここで紹介するライブラリーの1つである beautifulsoup4 を使いたい場合は、ターミナル(powershellやzsh、もしくはコマンドプロンプト)で例えば

pip install beautifulsoup4

と打ってインストールした上で(pipコマンドと言います。他にはPoetryというPython版パッケージ管理システムがありますが、私はPoetryはまだ使いこなせません。)

from bs4 import BeautifulSoup
soup = BeautifulSoup("<html>hogehoge</html>,""html.parser")
soup.html
--------

みたいに書き始めます。(bs4はbeautifulsoup4 のことです。ややこしいのですが、1行目のBeautifulSoup はライブラリ名、2行目のBeautifulSoupは同名の、beautifulsoup4モジュールに入った関数名です。

 なお、BeautifulSoup は(HTMLやXMLといったマークアップ言語のコードから)集めてきたデータを整理しやすい形に微修正し、その中から必要なものだけ抽出したり、成形したりするような処理(これを「スクレイピング」と言う。)をするためのモジュールです。

 上記の3行をターミナル(powershellやzsh等で python と打って>>>というマークが出てから)で実際に1行ずつ順に入力してもらうと分かるのですが、最後Enterを押した時点で

>>> soup.html
<html><body><p>hogehoge</p></body></html>

みたいな感じでオブジェクトが出力されます。(※ここでは、「データに関数や属性が実は隠れているようなもの」という感じの認識で大丈夫です)そして、これに対して、メソッドや関数を使って抽出したい要素を抽出したり、jsonファイルを作ったりするというのが、Python で beautifulsoup4を使ってできることの大きな流れになります

(何人か現役のベテランエンジニアの方の話を聞く限り、スクレイピングをしたいときには、selenium かbeautifulsoup4を使うことが一般的であるようです。※2023年11月Xのアンケートで確認しました。なお以下の記事のようにスクレイピングには他にもいくつか方法があります。)


なお(BeautifulSoupに限らず)ライブラリを使うに当たってここで1つ大きな問題があります。(おそらく、これがプログラミングには挫折者が多いという言われる原因の1つになっているのではないかと思っています)


 それは、「公式ドキュメント、つまりは各プログラムの取り扱い説明書は長い上に一般的に英語長文であることが多い。結果、分からないことを調べようとしても、その英語を読むのに時間が掛るし、時に作成者本人による説明が分からないことがある」ことです。

とどのつまり、協力して欲しいこと

 chat-GPT等のAIやGoogle翻訳の精度が上がっているとはいえ、英語と日本語だと少なくともニュアンスや意味の受け取り方が違ってきます。そして、Pythonも基本英語圏の人が中心に作ったプログラミング言語であり、公式ドキュメントはがっつり英語であることが多いので、同様の現象が起こりえます。

そして、このBeautifulSoupも以前のバージョンのbeautifulsoup3を近藤さんという方が2013年に翻訳してくださったのを最後に現在自分が調べた限りは、最新版のPython3に対応した公式ドキュメントの日本語翻訳はありません。そのため、現在、以下リンクのGoogleドキュメントで知らない単語だけ調べて自分の勉強の意味も含めて日本語翻訳を作っています。(※まだ精度は低いです)

※上記のリンクには共同編集の権限を付与してあります。また、バックアップは度々取っています。

 私自身がスクレイピングや機械学習を勉強しながら少しずつ翻訳作業を進めてはいますが、私も一応人間なので、この文書にも私の主観や誤訳が紛れまくっているはずです。そのため、少しでもいいので変なところがあったら指摘・修正をしてもらいたいというのが、このQiitaの趣旨です。なお、このQiitaを書く以前に何人かの方に指摘をいただいたのですが、まだ2023年11月上旬に3~4P分ぐらいしか、かなり丁寧に見てもらった修正分を全て補正できていません。


 なお一部例外もあります。

例① Pythonをインストール状態ですでに入っている標準ライブラリの公式ドキュメント(※これは、上記のpipにあたる作業が必要なくimport ~ からで大丈夫)

 例② Pythonのフレームワークの1つ(Flask)の公式ドキュメント

本題とそれますが・・

そもそも、私はこの春から転職のためにプログラミングスクールでPHP、Laravelを中心にプログラミングを本格的に学び始め、いざカリキュラム修了が見えた段階で求人情報を見てみたら、「実はプログラミング言語の需要には地域差がかなりある」ということを知り、エッ...(゚Д゚)と思いながら、Pythonを学び始めて約3ヶ月の32歳なのですが、Python以外も公式ドキュメントが日本語であることの方が少ないように思うので、それが解消されれば、もうすぐ来ると言われている70万人IT人材不足が少しは軽減されるのではないかと思っています。

本題とはそれますが、GreenやPaiza等の求人情報を見て今後、自分のように(エンジニアとしての)開発系希望で実務未経験から中途正規採用を目指している場合に気をつけるべきと思ったことを「自省録」的な意味も込めて挙げておきます。

求人がどの地域も万遍なく一番多いのはJava、意外と多いのは SQL、Python
②フロントエンドならReactやVue等といったJavascriptのフレームワーク、
 バックエンドならPHPのLaravelといったフレームワークが使えるとよい。
③関東圏、関西圏の方が当然だが、言語の幅が広い
④山陰はRubyが強い(Ruby開発者が島根出身の方のため。)
ターミナルに入力するコマンド(Gitbash、powershell、zsh、curlなど)の重要性を忘れがち

このQiitaを記事を書くにあたり特に参考にした資料

確かな力が身につくPython「超」入門 SB Creative 鎌田正浩 著
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1