ブログからの本文抽出:Java vs Python
div タグ + class 属性を利用してブログから本文を抽出するにあたり,Java と Python の実装を比較した.結果は Python の圧倒的勝利.
Java での記述
import java.io.*; import java.net.URL; import org.w3c.tidy.Tidy; import org.w3c.dom.Document; import javax.xml.xpath.*; public class sample { public static void main(String[] args){ try { //アメブロ:渋谷で働く社長 URL url = new URL("http://ameblo.jp/shibuya/entry-10980874972.html"); String expression = "//div[@class='entry']"; // Tidy を用いてページを整形式にする. Tidy tidy = new Tidy(); tidy.setShowWarnings(false); tidy.setQuiet(true); tidy.setInputEncoding("utf-8"); //要るのかな? // Tidy を利用して DOM document を取得 Document doc = tidy.parseDOM(url.openStream(), null); // XPath用のファクトリ生成 XPathFactory xpf = XPathFactory.newInstance(); // XPathオブジェクトの生成 XPath xpath = xpf.newXPath(); // XPath 表現を評価してブログ本文を得る String article = (String) xpath.evaluate(expression, doc, XPathConstants.STRING); System.out.print(article); } catch(Exception e){ e.printStackTrace(); } } }
Python での記述
>>> import urllib2 >>> from BeautifulSoup import BeautifulSoup >>> page = urllib2.urlopen("http://ameblo.jp/shibuya/entry-10980874972.html") >>> soup = BeautifulSoup(page) >>> article = soup.find('div', {"class":"entry"}) >>> print article