paiza開発日誌paiza開発日誌IT/Webエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。ITエンジニア向け総合求人・学習サービス「paiza」の開発者が、プログラミングやITエンジニアの転職などについて書いています。最近PythonでWebスクレイピングしたりする記事をよく目にする気がするので、私も書いてみようと思います。ちなみにPythonはNumpyやPandasなどの分析に便利なライブラリやツールがあったりするので使いやすい部分はあると思いますが、「Webスクレイピングに向いてる言語はPython!」というわけではありません。スクレイピングは別にPython以外の言語でもできますし、むしろ単純なデータの抽出程度なら無理にPythonを使うよりも、自分がふだんからよく使っている言語でやったほうがよいかと思います。今回は、Python・PHP・Perl・Bash・Rubyを使って、Webスクレイピングを試してみたので、各言語でのやり方を説明していきます。■Python・PHP・Perl・Bash・RubyでWebスクレイピングする今回、作業としては「このブログの右メニューの最新記事タイトルを取得し、タイトルとURLとセットで出力する」という単純なWebスクレイピングをしてみます。可能な限り外部ライブラリに頼らずにやってみました。(※普通に外部ライブラリが使える環境をお持ちの方は、外部ライブラリにどんどん頼ってよいかと思います)それぞれの言語を使って上記作業をできるだけシンプルに実現する方法と、さらにもう少し踏み込んでいろいろな作業をするなら...というところも補足していきます。■PythonRequestsというHTTPライブラリ(入ってない場合はpipで入れてください!)とPythonの標準のHTMLParserを使って、自前でHTMLパースを雑に行ってみるとこんな感じです。Soupを使った方がスマートにできるかと思います。XPathを使ったデータの取り出しまでが行えますし、コードもこんな感じでシンプルですね。少なくとも書捨てのデータ取得なら、PythonよりはPHPの方が向いているのでは?という気がします。歯ブラシと言われるだけのことはありますね。(※PHPの開発者であるラスマス・ラードフ氏の発言)XPathに関しては他の言語でも使えるようにできるライブラリもあり、スクレイプする上ではかなり有用です。詳しくは以下のドキュメントなどで学べるかと思います。■PerlPerlの場合、HTMLをパースしてもよかったのですがpaiza.IOでは使えない...ので、今度は正規表現でほしいデータを引っ張ってみました。■BashBashの場合、grepでがんばる感じですね。Perlと同じ正規表現を使っています。Xpathがインストールされているなら、PHPと共通のXPathをコピペすればgrepの代替になります。データを取りたいだけ...という場合は意外とアリなのかもしれません。入っているので楽ですね。(パイザ・アイオー)」はこちら■まとめというわけでPython・PHP・Perl・Bash・Rubyを使って、Webスクレイピングを試してみました。今回は可能な限り標準ライブラリを中心にやってみましたが(RubyはNokogiri使っちゃいましたけど)、Go言語などの場合は外部ライブラリに頼ったほうがよさそうです。いろいろな言語を試してみて、ただデータを取得したいだけなら、PHPが一番楽なのでは?と思いました。取得後にいろいろな処理を加えたいのであれば、Pythonなどで取得した上でPandasやデータフレームに入れる...というのがよさそうです。Bashとかでデータ取得して、それをファイルに吐き出させた後、別の言語で処理をさせる...というのもアリな気がします。この辺の記事でもPythonを使ってWeb上からデータを取ってきていろいろしていますので、興味のある方は見てみてください。人気声優の上坂すみれさん演じる進行役のスベトラーナ・小百合・ベレフスカヤと一緒に、実際に画像認識技術を使いながら、初心者でも機械学習を体験・学習できるレッスン内容になっています。Python×AI・機械学習入門編は全編無料でごらんいただけます。詳しくはこちら「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。詳しくはこちらそしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。14:18Tweet関連記事2022-12-12初心者も無料でPythonに入門できる!7つの学習コンテンツを紹介こんにちは。プログラミング初心者でPythonに興味が...2020-09-29すぐにコードを書いて試せる!オンラインプログラミング実行環境8選StockSnapによるPixabayからの画像こんにちは。初心...2020-03-24Python入門者向け・問題を解きながら独学で学べる7つのサイトこんにちは。