0

我正在尝试在闪亮的应用程序中使用 python 包从网页中提取主文本:https ://newspaper.readthedocs.io/en/latest/

我所说的正文是文章的正文,没有任何添加、链接等……(非常类似于 iphone 上 safari 中的“读者视图”)。

据我所知,中没有类似的包r,如果你知道,请告诉我。

这个应用程序的目标是允许用户插入一个网址,单击提交并获得干净的文本作为输出。

请找到下面的代码以及错误消息。我正在使用 rstudio 云。

这是错误:

Using virtual environment 'python3_env' ...
Warning in system2(python, c("-c", shQuote(command)), stdout = TRUE, stderr = TRUE) :
  running command ''/cloud/project/python3_env/bin/python' -c 'import sys; import pip; sys.stdout.write(pip.__version__)' 2>&1' had status 1
Warning in if (idx != -1) version <- substring(version, 1, idx - 1) :
  the condition has length > 1 and only the first element will be used
Warning: Error in : invalid version specification ‘’, ‘  ’
  52: stop
  51: .make_numeric_version
  50: numeric_version
  49: pip_version
  48: reticulate::virtualenv_install
  47: server [/cloud/project/python in shiny.R#42]
Error : invalid version specification ‘’, ‘  ’

这是代码:

# Python webpage scraper followed by r summary: 


library(shiny)
library(reticulate)


ui <- fluidPage(
  
  sidebarLayout(
    sidebarPanel(
      
      textInput("web", "Enter URL:"),
      
      actionButton("act", "Submit") 
      
    ),
    
    
    mainPanel(br(),
              tags$head(tags$style(HTML("pre { white-space: pre-wrap; word-break: keep-all; }"))),
              verbatimTextOutput("nText"), 
              br() 
    )
  )
)


 
server <- function(input, output){
  
  #1) Add python env and packages: 
 
  reticulate::virtualenv_install('python3_env', packages = c('newspaper3k', 'nltk')) 
  
  
  py_run_string("from newspaper import Article")
  py_run_string("import nltk")
  py_run_string("nltk.download('punkt')")
  
  
  
  #2) Pull the webpage url: 
  webad <- eventReactive(input$act, {
    req(input$web)
    input$web
  })
  
  
 
  
  
  observe({
    
    py$webadd = webad
    
    py_run_string("article = Article('webadd')")
    
    py_run_string("article.download()")
    py_run_string("article.parse()")
    py_run_string("article.nlp()")
    py_run_string("ztext =article.text")
    py_run_string("r.ntexto = ztext")
    
    
    
    
    output$nText <- renderPrint({
      r.ntexto
    })
    
    
  })
  
}


 

shinyApp(ui = ui, server = server)
4

0 回答 0