ISBN の抽出
ひたすらに XPath で ISBN を抽出する。Amazon の商品ページから東京都内の図書館の蔵書検索を行う Greasemonkey スクリプト - へたっぴ日記をいろんなサイトで表示したくて。
アマゾン
>>> isbn10 = document.evaluate( 'normalize-space(//li[b/text()="ISBN-10:"]/text())', document, null, XPathResult.STRING_TYPE, null).stringValue "4873113296" >>> isbn13 = document.evaluate( 'translate(//li[b/text()="ISBN-13:"]/text(), "- ", "")', document, null, XPathResult.STRING_TYPE, null).stringValue "9784873113296"
オライリー
>>> isbn10 = document.evaluate( 'translate(//meta[string-length(@content)=13 and @name="isbn"]/@content, "-", "")', document, null, XPathResult.STRING_TYPE, null).stringValue "4873112028" >>> isbn13 = document.evaluate( 'translate(//meta[string-length(@content)=17 and @name="isbn"]/@content, "-", "")', document, null, XPathResult.STRING_TYPE, null).stringValue "9784873113142"
ブックオフオンライン
>>> isbn13 = document.evaluate( '//tr[th/text()="JAN"]/td/text()', document, null, XPathResult.STRING_TYPE, null).stringValue "9784106101410"
イーブックオフ
>>> isbn10 = document.evaluate( 'substring(//tr[td/b/text()="ISBN"]/td[3]/text(), 1, 10)', document, null, XPathResult.STRING_TYPE, null).stringValue "404713791X" >>> isbn13 = document.evaluate( 'substring(//tr[td/b/text()="ISBN"]/td[3]/text(), 13, 13)', document, null, XPathResult.STRING_TYPE, null).stringValue "9784047137912"
Google ブック検索
>>> isbn10 = document.evaluate( 'substring-before(substring-after(//a[contains(@href, "ISBN:")]/@href, "ISBN:"), "&")', document, null, XPathResult.STRING_TYPE, null).stringValue "4873110971" >>> isbn10 = document.evaluate( 'substring-after(//td/text()[starts-with(., "ISBN ")], "ISBN ")', document, null, XPathResult.STRING_TYPE, null).stringValue "4873110971"
たぶん、つづく。