2017年12月17日日曜日

python勉強していてhtml.parserってなんやねん?

プログラミングの言語って割とどれでも一緒な気がするんですよ。あくまで何もわかってない素人の戯言ですが。

でも・・・

html.parser


これ初めて見たんですよね・・・まあ他にも結構見慣れない文字が多くてすでに前言が危うくなってるんですが(笑)

ぐぐったらこの人pythonを使用してのスクレイピングの記事も書いていたんですね?というかめっちゃ最近の記事なのである意味自分にはラッキーでした(笑)
ちょっと前に勉強開始していたらこの人の記事にたどり着けませんでしたものね。

エクセルのVBAでスクレイピングをぐぐると一番最初くらいに出てくる記事を書いている人なんですが、流石それだけあってすごく初心者にもまったくプログラミング経験がない人にでもわかるくらいの平易な表現でものすごく分かりやすく解説してくれています。

そのpython版の記事も書いているようでこの度発見しました(笑)



BeautifulSoupオブジェクトを生成する
Beautiful Soupモジュールを使ってHTMLを解析するためには、まずHTML文字列からBeautifulSoupオブジェクトを生成します。
書式は以下の通りです。

bs4.BeautifulSoup(HTML文字列, パーサー)


パーサーというのはパースをするやつ、つまり解析をするための機能のことで、ここで好みのパーサーを指定できます。
html5libやlxmlなど、いくつか種類がありますが、使用する場合は別のモジュールのインポートが必要になります。ひとまず、困ることが出てくるまでは、Pythonに標準で付属している「html.parser」を指定しておきます。
引用させていただくとこんな感じだそうです。

HTML解析するためにBeautifulSoupオブジェクトとしてぶっこめばいろいろいじれる。
そのおまじないの文言なんですね。

プログラム風に書いておくなら

変数=bs4.BeautifulSoup("https://www.yahoo.co.jp/", "html.parser")
みたいな?

あとついでに出てきた興味深いページのリンクを貼っておこう。いつかみれるといいのだが。
ブラウザの仕組み: 最新ウェブブラウザの内部構造

1 件のコメント:

  1. すみません,非常にどうでもいい話ですが(記事の趣とずれている),私が直面している課題について記事を拝見し,よい方法を思いついてしまったので感謝のコメントを残させてください.
    PythonでWebページを徘徊するボットを作ったものの,最近のJavascriptを多用したリッチコンテンツには太刀打ちできず,目的のデータを収集することが困難でした.というわけで非常に非効率なソリューションとして,Javascriptを解析して評価する機構を自作していたのですが,案の定頓挫しました.

    ということで何か方法がないかな,とWebを徘徊していまして,この記事を拝読させていただき,別にPythonでなくてもよくない?と,気づきました.具体的に言えばブラウザにやらせればいいんじゃない!という本家本元に処理させるアプローチ方法です.Google Chromeにユーザスクリプトプラグインをぶち込んで,スクリプトを殴り書き,数か月悩んだものが,ものの1・2時間で解決しました.いやあ,視点を広く持つというのは大切なことですね.ありがとうございます.

    返信削除