読者です 読者をやめる 読者になる 読者になる

oneshotlife-pythonのブログ

Pythonを好んで使っているプログラマです。Pythonこそが最強のプログラミング言語だと思っています。Pythonは使いやすいです。Pythonは書きやすいです。Pythonは読みやすいです。Pythonはパワフルです。Pythonは一貫性があります。Pythonが好きです。

urllibを使ってhtmlデータを取得 #Python #WebScraping

ウェブスクレイピングとは、

ウェブスクレイピング(Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。ウェブ・クローラー(Web crawler) あるいはウェブ・スパイダー(Web spider)とも呼ばれる。 通常このようなソフトウェアプログラムは低レベルのHTTP(Hypertext Transfer Protocol)を実装することで、もしくはInternet ExplorerまたはMozilla FirefoxなどのWebブラウザを埋め込むことによって、人間によるWWWのブラウジングをシミュレートする。

のことです。

どんな言語を使っても実装出来ないことはないですが、C++Javaを使って実装するよりは、Perl,Python,Rubyを使って実装するほうが容易です。当ブログはPythonのブログなので、Pythonを使ってウェブスクレイピングをやってみたいと思います。

一番最初に、ウェブスクレイピングの中でももっともシンプルなプログラムを書いてみたいと思います。urllibというライブラリを使って、当ブログのURLにアクセスし、HTMLを一行ずつ出力するという簡単なプログラムです。

In [1]: import urllib

In [2]: html = urllib.urlopen("http://oneshotlife-python.hatenablog.com/")

In [3]: print(html.readline())
<!DOCTYPE html>


In [4]: print(html.readline())
<html


In [5]: print(html.readline())
  lang="ja"


In [6]:

readline()のところをread()で取得すれば、当ブログのHTMLが丸丸取得出来ます。今回は、サンプルコードなので、readline()を使って一行一行取得しましたが、ウェブスクレピングをするなら、HTMLを丸丸取得して、それらを解析したほうがよいかもしれません。

ちなみに、Pythonを使ってウェブスクレイピングを行う手法を解説した書籍が最近発売されました。当ブログは、その書籍を参考にしています。洋書しかないのが残念ですが、いつか、翻訳されてくれることと思っています。オライリーから出版されている、骨太の本です。

Web Scraping with Python: Collecting Data from the Modern Web
Ryan Mitchell
Oreilly & Associates Inc
売り上げランキング: 7,065