2014-03-05 48 views
-1

我正在使用這個項目的web刮刀(基於斯卡拉,噴霧,阿卡和PhantomJS)使用情況的webdriver(https://github.com/typesafehub/webdriver)執行JS

的問題是,我找不到更具體的如何使用它的例子,並且文檔缺少很多細節

1-我想知道如何給出一個特定的URL,以便我可以從中獲取數據它

2-如何超越或傳遞JavaScript文件或函數以便幻像可以運行並執行一些操作(從點1-中的站點返回特定數據或其他內容)

這裏是我的Main.scala文件:(幾乎是一樣的一個項目)

package com.typesafe.webdriver.tester 

import akka.actor.{ActorRef, ActorSystem} 
import akka.pattern.ask 

import com.typesafe.webdriver.{Session, PhantomJs, LocalBrowser} 
import akka.util.Timeout 
import scala.concurrent.duration._ 
import scala.concurrent.ExecutionContext.Implicits.global 
import spray.json._ 
import spray.http._ 



object Main { 
    def main(args: Array[String]) { 
    implicit val system = ActorSystem("webdriver-system") 
    implicit val timeout = Timeout(5.seconds) 

    system.scheduler.scheduleOnce(7.seconds) { 
     system.shutdown() 
     System.exit(1) 
    } 
    val browser = system.actorOf(PhantomJs.props(system), "localBrowser") 
    browser ! LocalBrowser.Startup 
    for (
     session <- (browser ? LocalBrowser.CreateSession).mapTo[ActorRef]; 
     result <- (session ? Session.ExecuteNativeJs("return 5+5",JsArray(JsNumber(999)))).mapTo[JsNumber] 
    ) yield { 
     println(result) 
     try { 
     system.shutdown() 
     System.exit(0) 
     } catch { 
     case _: Throwable => 
     } 

    } 

    } 
} 

回答

0

我建議你在Scala中使用已經創建的網頁scrappers。 例如ScalaWebDcraper,它已經很好地寫了DSL和報廢功能。

https://github.com/Rovak/ScalaWebscraper

它可以與鵝,它是一個網絡文章提取器進行組合。您可以使用它從您前一個圖書館訪問的鏈接中獲取文章數據。

https://github.com/jiminoc/goose

此外,結賬Metascrapper,一個Scala庫刮頁的元數據

https://beachape.com/blog/2013/09/05/introducing-metascraper-a-scala-library-for-scraping-page-metadata/

並檢查該question,裏面有價值的信息很多的。

相關問題