Screen-252520Shot-2525202014-03-30-252520at-2525209.47.42-252520PM

[Mac] CasperJS – CoffeeScriptとスクレイピング

[Mac] CasperJS – CoffeeScriptとスクレイピングさいきんのアンドロイドの解像度が知りたかったんで、ためしにCasperJsでスクレイピングのスクリプトを作ってみました。

smartphoneAu.coffee

resutl = new Object()
resutl.headSizeDisply = "ディスプレイ(画面)サイズ"
resutl.headResolutionDisply = "ディスプレイ(画面)解像度"
resutl.headOS = "OS"
resutl.headCPU = "CPU"
smartPhoneAu = "http://www.au.kddi.com/mobile/product/smartphone"
fistLink = smartPhoneAu + "/lgl23/"
links = [
  smartPhoneAu + "/sol24/"
  smartPhoneAu + "/shl24/"
  smartPhoneAu + "/l02/"
  smartPhoneAu + "/lgl22/"
  smartPhoneAu + "/sol23/"
  smartPhoneAu + "/scl22/"
  smartPhoneAu + "/shl23/"
  smartPhoneAu + "/fjl22/"
  smartPhoneAu + "/kyl22/"
  smartPhoneAu + "/htl22/"
  smartPhoneAu + "/shl22/"
  smartPhoneAu + "/l01/"
]
scrapingTitle = ->
  resutl.productName = @evaluate(->
    document.querySelector "h1"
  )
  resutl.date = @evaluate(->
    document.querySelector ".release"
  )

scraping = ->
  resutl.detailsSizeDisply = @evaluate(->
    __utils__.getElementByXPath "//*[contains(./text(), 'インチ')]"
  )
  resutl.detailsResolutionDisply = @evaluate(->
    __utils__.getElementByXPath "//*[contains(./text(), '0×')]"
  )
  resutl.detailsOS = @evaluate(->
    __utils__.getElementByXPath "//*[contains(./text(), 'Android™')]"
  )
  resutl.detailsCPU = @evaluate(->
    __utils__.getElementByXPath "//*[contains(./text(), 'GHz')]"
  )

printResults = ->
  @echo resutl.productName.innerText + " - " + resutl.date.innerText
  @echo resutl.headSizeDisply
  @echo resutl.detailsSizeDisply.innerText
  @echo resutl.headResolutionDisply
  @echo resutl.detailsResolutionDisply.innerText
  @echo resutl.headOS + " - " + resutl.detailsOS.innerText
  @echo resutl.headCPU + " - " + resutl.detailsCPU.innerText
  @echo ""

casper = require("casper").create()
casper.start fistLink
casper.then scrapingTitle
casper.then ->
  @open fistLink + "spec/"
casper.then scraping
casper.then printResults
casper.then ->
  i = -1
  @each links, ->
    i++
    @thenOpen (links[i]), ->
      casper.then scrapingTitle
      return
    @thenOpen (links[i] + "spec/"), ->
      casper.then scraping
      casper.then printResults
      return
    return
  return

casper.run ->
  @exit()

結果

casperjs smartphoneAu.coffee
G Flex LGL23 - 2014年1月25日発売
ディスプレイ(画面)サイズ
メイン:約6.0インチ
サブ:―
ディスプレイ(画面)解像度
メイン:1,280×720(HD)
サブ:―
OS - Android™ 4.2
CPU - MSM8974 2.3GHz クアッドコア

Xperia(TM) Z Ultra SOL24 - 2014年1月25日発売
ディスプレイ(画面)サイズ
メイン:約6.4インチ
サブ:―
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:―
OS - Android™ 4.2
CPU - MSM8974 2.2GHz クアッドコア

AQUOS PHONE SERIE mini SHL24 - 2014年2月22日発売
ディスプレイ(画面)サイズ
メイン:約4.5インチ
サブ:―
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:―
OS - Android™ 4.2
CPU - MSM8974 2.2GHz クアッドコア

URBANO L02 - 2014年2月8日発売
ディスプレイ(画面)サイズ
メイン:約4.7インチ
サブ:―
ディスプレイ(画面)解像度
メイン:1,280×720(HD)
サブ:―
OS - Android™ 4.2
CPU - MSM8960 1.5GHz デュアルコア

isai LGL22 - 2013年11月23日発売
ディスプレイ(画面)サイズ
メイン:約5.2インチ
サブ:-
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:-
OS - Android™ 4.2
CPU - MSM8974 2.3GHz クアッドコア

Xperia(TM) Z1 SOL23 - 2013年10月23日発売
ディスプレイ(画面)サイズ
メイン:約5.0インチ
サブ:-
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:-
OS - Android™ 4.2
CPU - MSM8974 2.2GHz クアッドコア

GALAXY Note 3 SCL22 - 2013年10月17日発売
ディスプレイ(画面)サイズ
メイン:約5.7インチ
サブ:―
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:―
OS - Android™ 4.3
CPU - MSM8974 2.3GHz クアッドコア

AQUOS PHONE SERIE SHL23 - 2013年11月15日発売
ディスプレイ(画面)サイズ
メイン:約4.8インチ
サブ:-
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:-
OS - Android™ 4.2
CPU - MSM8974 2.2GHz クアッドコア

ARROWS Z FJL22 - 2013年11月22日発売
ディスプレイ(画面)サイズ
メイン:約5.0インチ
サブ:-
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:-
OS - Android™ 4.2
CPU - MSM8974 2.2GHz クアッドコア

DIGNO(R) M KYL22 - 2013年11月23日発売
ディスプレイ(画面)サイズ
メイン:約5.0インチ
サブ:-
ディスプレイ(画面)解像度
メイン:1,920×1,080(FHD)
サブ:-
OS - Android™ 4.2
CPU - MSM8974 2.2GHz クアッドコア

参考サイト様:

ふぁぼったーをユーザー名、正規表現、XPathでフィルタするGreasemonkey - 聴く耳を持たない(片方しか)

以上、ご参考までで

About the author
  • コメントを残す