在/etc/shiny-server/shiny-server.conf
中,我有一个SSL configuration,看起来像:
server {
# ...
ssl /etc/path/to/ssl-key.pem /etc/path/to/ssl.cert;
# ...
}
现在,从运行Shiny Server的服务器上的R REPL中,我很好奇是否有一种方法可以通过任何类型的shiny-server.conf
从# server.R
library(shiny)
shinyServer(function(input, output, session){
# ... ?
})
检索配置数据半)官方API。
类似的东西:
"ssl": ["/etc/path/to/ssl-key.pem", "/etc/path/to/ssl.cert"]
这将产生以下效果:
import scrapy
from scrapy.crawler import CrawlerProcess
class myspider(scrapy.Spider):
name = 'my_spider'
name_loc = '//div[@id="divListView"]//h4/a/text()'
price_loc = 'div.price > span::text'
def start_requests(self):
yield scrapy.Request('url=https://www.czone.com.pk/mouse-pakistan-ppt.95.aspx', callback=self.parse)
def parse(self, reponse):
page1_prices = response.css(myspider.price_loc).extract()
page1_names = response.xpath(myspider.name_loc).extract()
for price, name in zip(page1_prices, page1_names):
mice_names.append(name)
mice_prices.append(price)
links = response.css('a.PageNumber::attr(href)').extract()
for link in links:
yield response.follow(url=link, callback=self.parse_pages)
def parse_pages(self, response):
page_prices = response.css(myspider.price_loc).extract()
page_names = response.xpath(myspider.name_loc).extract()
for price, name in zip(page_prices, page_names):
mice_names.append(name)
mice_prices.append(price)
mice_names = []
mice_prices = []
process = CrawlerProcess()
process.crawl(myspider)
process.start()
print(mice_names)
print(mice_prices)
答案 0 :(得分:1)
老实说,我认为您无法访问该页面,因为允许应用程序(因此是“常规用户”)查看配置项可能会带来安全风险。 (例如,其中可能包含SAML / LDAP / ...配置的机密。)
现在我不知道这个答案能解决这个问题,它可能使您能够找到需要的东西。
注意:我故意过滤掉session
中的几种类型的对象,因为我发现它们要么崩溃了(它们是复杂的复合对象,也许是谁知道它们中的内容),要么它们是显然只是无关紧要的。如果您想对被过滤掉的内部结构有更多的了解,可以将其saveRDS
存入文件并从服务器中检索出来。
library(shiny)
ui <- bootstrapPage(
h3("Parsed query string"),
verbatimTextOutput("queryText"),
h3("URL components"),
verbatimTextOutput("sessionText"),
h3("EnvVars"),
verbatimTextOutput("envvarText")
)
server <- function(input, output, session) {
# Parse the GET query string
output$queryText <- renderText({
query <- parseQueryString(session$clientData$url_search)
# Return a string with key-value pairs
paste(names(query), query, sep = "=", collapse=", ")
})
# Return the components of the URL in a string:
output$sessionText <- renderText({
cls <- sapply(session, function(a) class(a)[1])
nms <- names(cls[ cls %in% c("list", "character", "numeric", "integer", "NULL", "logical", "environment") ])
nms <- setdiff(nms, ".__enclos_env__")
paste(
capture.output(
str(
sapply(nms,
function(sessnm) {
if (inherits(session[[sessnm]], c("environment", "reactivevalues"))) {
sapply(names(session[[sessnm]]), function(nm) session[[sessnm]][[nm]], simplify = FALSE)
} else if (inherits(session[[sessnm]], c("character", "numeric", "integer"))) {
session[[sessnm]]
} else class(session[[sessnm]])
}, simplify = FALSE),
nchar.max = 1e5,
vec.len = 1e5
)
),
collapse = "\n"
)
})
# Dump the environment variables
output$envvarText <- renderText({
paste(
capture.output(
str(as.list(Sys.getenv()))
),
collapse = "\n"
)
})
}
shinyApp(ui, server)
这呈现了这样的内容(一些隐私被屏蔽了,并且通常很模糊,因为根据您的特定服务器,您的结果可能有所不同。
这是在Ubuntu 16.04上托管的RStudio Connect v1.8.2上。通过SAML进行身份验证;其他身份验证方法的字段可能略有不同(或多或少)。