Beautiful Soup とはPython 標準の html.parser モジュールは、SAX 形式のイベントドリブンなパーサなため、若干扱いにくいところがあります。 Beautiful Soup ライブラリを使用することで、HTML の要素に簡単にアクセスすることができるようになります。 Beautiful Soap DocumentationBeautiful Soup パッケージは次のようにインストールできます。
![Python で HTML をパースする (Beautiful Soup)](https://cdn-ak-scissors.b.st-hatena.com/image/square/d13f3a5122af19ea97ea6ec66315493d87b3cd05/height=288;version=1;width=512/https%3A%2F%2Fmaku77.github.io%2Fimg%2Fsite-logo.png)
この場合、rowはカンマで区切られたリストが格納されています。 ファイル読み込みのサンプル ファイルを読み込むときはopen()を読み込みモードで指定してファイルを開きます。 ここではwith構文を使うことで、オープンしたファイルのクローズを省略しています。特に理由がない場合は、with構文を使用した方が安全にファイルを扱うことができます。 # -*- coding: utf-8 -*- import csv # ファイルを読み込みモードでオープン with open('sample.csv', 'r') as f: reader = csv.reader(f) # readerオブジェクトを作成 header = next(reader) # 最初の一行をヘッダーとして取得 print ''.join(header) # ヘッダーをスペース区切りで表示 # 行ごとのリストを処理する fo
今回は、これまで細かく説明してこなかったselfについて扱います。self自体については割りきってしまえば非常に単純明快なので、細かい話に興味がない人は最初の節のみ読んでいただければ大丈夫です。2節目以降は、かなり前の関数やモジュールの回で説明した「名前空間」と「スコープ」に関わる話となります。 メソッドのselfについて まず前回までの復習をします。Pythonのクラスのメソッドやコンストラクタでは第一引数をselfとし、それらの定義されたメソッドを呼び出す際はselfに該当する引数を指定しないのでした。 たとえば、以下のクラスのコンストラクタ__init__とmethod1の利用方法を見ればわかりますね。宣言にはselfがありますが、呼び出しにはselfに相当するものがありません。 class MyClass: def __init__(self): print('constructe
from urllib.request import urlopen from bs4 import BeautifulSoup from pprint import pprint URL = 'http://news.yahoo.co.jp/' with urlopen(URL) as res: html = res.read().decode("utf-8") soup = BeautifulSoup(html, 'html.parser') titles = soup.select('.ttl a') # domを取得 titles = [t.contents[0] for t in titles] # テキストを取得 pprint(titles) >>> ['トランプ氏「司法行き過ぎ」', 'PKO日報 特別防衛監察を指示', '病院で投与ミス 一時心肺停止', '特攻服の中学生ら
Python東海 第28回勉強会の発表の中で、Seleniumでお小遣いを稼ぐという発表がありました。 Seleniumは名前は知っているけど使ったことがなかったのでネットバンキング(三菱東京UFJ銀行)で試してみました。 Selenium? Seleniumとはブラウザの操作を自動化するツールで、WebアプリのUIのテストや今回のようにスクレイピングに使用するツールです。 JavaScriptでDOMを組み立てているサイトで活躍します 環境 Mac OSX Python 3.5 準備 Seleniumのインストール $ pip install selenium Chrome driverのダウンロード Firefoxを使う場合はDriverはSeleniumに入ってるが、Chromeを使用する場合は別途ダウンロードが必要 ChromeDriver - WebDriver for Chro
Python の print はデフォルトで末尾に改行を追加して出力します。 これを末尾に改行を加えずに出力する方法をご紹介します。 Python 3 の場合 Python 2 の場合 Python 3 の場合 Python 3 の print は Python 2 とは違い print() 関数です。 print() 関数はデフォルトで末尾に改行を追加しますが、引数 end を使うと末尾に出力する文字を変更することができます。 end に空文字 "" を渡せば改行が追加されません。 print("hello", end="") print("hello", end="") # => hellohello
Pythonのライブラリ(Beautiful Soup)を利用してスクレイピングしてみた インストールとタグ操作root@hostname:/home/shimizu/python# aptitude install python-bs4 以下の新規パッケージがインストールされます: python-bs4 python-chardet{a} python-lxml{a} ... root@hostname:/home/shimizu/python# cat scraping-bs4.py # coding: UTF-8 import urllib2 from bs4 import BeautifulSoup res = urllib2.urlopen("http://ll.jus.or.jp/2014/program.html") # オブジェクト<class 'bs4.element.R
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く