Skip to Content
PythonによるWebスクレイピング 第2版
book

PythonによるWebスクレイピング 第2版

by Ryan Mitchell, 黒川 利明, 嶋田 健志
March 2019
Intermediate to advanced
312 pages
4h 32m
Japanese
O'Reilly Japan, Inc.
Content preview from PythonによるWebスクレイピング 第2版

2章高度なHTMLパース

ミケランジェロが、ダビデ像のような傑作をどのようにして彫刻することができたのかと訊かれたとき、「たやすいことです。石からダビデの姿とは見えないところを削り出してしまえばいいのです」と答えたというのは有名です。

Webスクレイピングは、ほとんどの点で大理石の彫刻とは違いますが、複雑なWebページから目的の情報を抽出するという点では同様のアプローチを取らなければなりません。目的の情報にたどり着く前に、目的に沿わないものを取り除くために多くの技法があります。本章では、目的の情報だけを抽出するために、複雑なHTMLページのパースから見ていきましょう。

2.1 いつもハンマーが必要なわけではない

ゴルディアスの結び目†1のように複雑なタグを目にすると、すぐさま仕事に取り掛かり、情報を抽出する何行ものコードを書きたくなるものです。しかし、本節で使われる技法をひたすら積み重ねただけでは、デバッグが難しいか、安定しないか、あるいはその両方とものコードになりかねません。始める前に、高度なHTMLパースそのものが必要でなくなる方法がないかどうか見ておきましょう。

[†1] 訳注:アレキサンダー大王が解いたという有名な縄の結び目。詳しくはWikipediaの項目「ゴルディアスの結び目」を参照。

目的のコンテンツがあるとします。例えば、名前、統計、テキストブロックなどです。HTMLに役立つタグもなければ、HTML属性も見つからず、20個のタグがレイヤーの奥深く埋もれているとしましょう。無謀にも、抽出するために、とりあえず、次のようなコードを書いたとします。

bs.find_all('table')[4].find_all('tr')[2].find('td').find_all('div')[1].find('a') ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

ハイパフォーマンスPython 第2版

ハイパフォーマンスPython 第2版

Micha Gorelick, Ian Ozsvald, 中山 光樹
統計クイックリファレンス 第2版

統計クイックリファレンス 第2版

Sarah Boslaugh, 黒川 利明, 木下 哲也, 中山 智文, 本藤 孝, 樋口 匠

Publisher Resources

ISBN: 9784873118710Other