質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.60%

R で "}" を読み込ませたい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 599
退会済みユーザー

退会済みユーザー

R でスクレイピングをするために URL 操作をしたいのです。
以下がコードです。

library(RSelenium)
library(rvest)
library(XML)

remDr = remoteDriver(remoteServerAddr = "localhost", port = 4444, browserName = "chrome")
remDr$open()

iterater <- 1
max_page <- 3
patent_linkDF <-data.frame('', '')
sleep <- 3

url <- 'https://jglobal.jst.go.jp/search/patents#{"category":"3","keyword":"農薬"}'
remDr$navigate(url)
planeHtmlList <- remDr$getPageSource()
fileNmae <- paste(formatC(iterater, width = 5, flag = 0), ".html", sep = "")
write(unlist(planeHtmlList), fileNmae)

path <- paste(getwd(), fileNmae, sep = "/")
html <- read_html(path)
parsed_doc <- htmlParse(html)
title <- xpathSApply(doc = parsed_doc , path = "//a[@href]", xmlValue)
link <- xpathSApply(doc = parsed_doc , path = "//a[@href]", xmlGetAttr, "href")
tempDF <- data.frame(title, link)
patent_linkDF <- tempDF[-c(1,2, nrow(tempDF)), ]
iterater <- iterater + 1
Sys.sleep(sleep)

while(iterater <=  max_page){
    url <- paste('https://jglobal.jst.go.jp/search/patents#{"category":"3","keyword":"農薬","page":', iterater, "}", sep='')            remDr$navigate(url)
    planeHtmlList <- remDr$getPageSource()
    fileNmae <- paste(formatC(iterater, width = 5, flag = 0), ".html", sep = "")
    write(unlist(planeHtmlList), fileNmae)

    path <- paste(getwd(), fileNmae, sep = "/")
    html <- read_html(path)
    parsed_doc <- htmlParse(html)
    title <- xpathSApply(doc = parsed_doc , path = "//a[@href]", xmlValue)
    link <- xpathSApply(doc = parsed_doc , path = "//a[@href]", xmlGetAttr, "href")
    tempDF <- data.frame(title, link)
    patent_page_linkDF <- tempDF[-c(1,2, nrow(tempDF)), ]
    patent_linkDF <- rbind(patent_linkDF, tempDF);
    iterater <- iterater + 1
    Sys.sleep(sleep)
}


write.csv(patent_linkDF, "patent_link.csv")


以下がエラー内容です。

エラー:  予想外の '}' です  in "}"


調べてみたところクオーテーション内はそれぞれsyntax checkが入るので}が閉じていないので怒られているらしいのですが回避方法がわかりません。
回避方法がわかる方がいらっしゃいましたらご教示ください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KojiDoi

    2019/01/20 05:26

    試してみましたがエラーが再現しません。どこかに誤字脱字の類があるんじゃないですか?

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2019/01/20 20:27

    全文を追加しました。
    for 文外ではエラーにならないのですが、for 分内では以下のエラーが出てしまいます。
    `エラー: 予想外の '}' です in "}"`

    キャンセル

  • KojiDoi

    2019/01/20 22:53

    for 分内とはどこですか?

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2019/01/21 09:48 編集

    失礼しました。

    while内です。

    キャンセル

回答 1

checkベストアンサー

0

remDr$navigate(url)の前に改行が正しく入っていません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/01/21 21:01

    エディタの影響でいい感じに気づきませんでした。
    ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る