scala-scraper의 Validation
밸리데이션 주위를 중심으로 움직여 보았습니다.
기본적인 사용법은 하부의 참고 기사가 상세합니다.
scala-scraper
htps : // 기주 b. 코 m / 루이 ぺ이와 g / s ぁ-sc 등 ぺr # 콘텐 t ゔ ぃ
build.sbt
libraryDependencies += "net.ruippeixotog" %% "scala-scraper" % "2.1.0"
sample.scala
import net.ruippeixotog.scalascraper.browser._
import net.ruippeixotog.scalascraper.dsl.DSL._
import net.ruippeixotog.scalascraper.dsl.DSL.Extract._
import net.ruippeixotog.scalascraper.util.Validated._
object SampleApp {
val content = """
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
<div id="wrapper">
<div id="content">
<section>
<h3>Section 1 h3</h3>
<p>Some text for testing</p>
</section>
<section>
<h3>Section 2 h3</h3>
<span>My Form</span>
</section>
</div>
</div>
</body>
</html>"""
def main(args: Array[String]): Unit = {
val jsoupBrowser = JsoupBrowser()
val doc = jsoupBrowser.parseString(content)
// とりあえず普通に抽出
println(doc >> text("div#content section h3"))
// Section 1 h3
// バリデーション
println(doc >/~ validator(text("div#content section h3"))(_.nonEmpty))
// Right(JsoupDocument(<!doctype html>......</html>)) 成功するとHTML全体
println(doc >/~ validator(text("div#content section h3 not_exist"))(_.nonEmpty))
// Left(()) 失敗の場合
// バリデーションパターンを以下のようにもできる
val succ = validator(text("title"))(_ == "AAAAAAAAAAAA") // 実際は "Test page" なので、errorsに
val err = Seq(
validator(text(".msg"), "Not logged in")(_.contains("sign in")),
validator("#div content", "Empty contents")(_.isEmpty), // 該当するエラーのパターン
validator(text("h1"), "Internal Server Error")(_.contains("500"))
)
doc >/~ (succ, err) match {
case VSuccess(content) => println(content)
case VFailure(msg) => println(s"Error: $msg")
}
// Error: Empty contents
}
}
참고
h tps:// 퀵했다. 작은 m/하 ry0000/있어 MS/0C4 그림 37 엣 b71d102cf8b0
htps : // 이 m/아라_타 3/있어 ms/8bf8c6 ぇ c86884fb6cb
Reference
이 문제에 관하여(scala-scraper의 Validation), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yotsak/items/e95cd8961cc6c32fc074
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(scala-scraper의 Validation), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yotsak/items/e95cd8961cc6c32fc074텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)