{"id":3320,"date":"2023-11-09T16:18:39","date_gmt":"2023-11-09T16:18:39","guid":{"rendered":"http:\/\/optimumsportsperformance.com\/blog\/?p=3320"},"modified":"2023-11-09T16:18:39","modified_gmt":"2023-11-09T16:18:39","slug":"tidyx-episode-162-advanced-shiny-web-scraping-dynamic-linking","status":"publish","type":"post","link":"https:\/\/optimumsportsperformance.com\/blog\/tidyx-episode-162-advanced-shiny-web-scraping-dynamic-linking\/","title":{"rendered":"TidyX Episode 162: Advanced Shiny &#8211; Web Scraping &#038; Dynamic Linking"},"content":{"rendered":"<p><span style=\"color: #0000ff;\"><strong><a style=\"color: #0000ff;\" href=\"https:\/\/twitter.com\/ellis_hughes\">Ellis Hughes<\/a><\/strong><\/span> and I have been working on some advanced shiny tutorials. This week, we show how you can dynamically link to a webpage via your shiny server, have the server scrape the web page for the defined user query and then return the results back to them. We do this using NHL data provided by the folks at <span style=\"color: #0000ff;\"><strong><a style=\"color: #0000ff;\" href=\"https:\/\/www.hockey-reference.com\/\">www.hockey-reference.com<\/a><\/strong><\/span>.<\/p>\n<p>To watch our screen cast, <span style=\"color: #0000ff;\"><strong><a style=\"color: #0000ff;\" href=\"https:\/\/www.youtube.com\/watch?v=44slcpDFj10\">CLICK HERE<\/a><\/strong><\/span>.<\/p>\n<p>To access our code, <strong><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/github.com\/thebioengineer\/TidyX\/tree\/master\/TidyTuesday_Explained\/162-Connected_Shiny_Apps_Part1\">CLICK HERE<\/a><\/span><\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ellis Hughes and I have been working on some advanced shiny tutorials. This week, we show how you can dynamically link to a webpage via your shiny server, have the server scrape the web page for the defined user query and then return the results back to them. We do this using NHL data provided [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[],"class_list":["post-3320","post","type-post","status-publish","format-standard","hentry","category-tidyx-screen-cast"],"_links":{"self":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts\/3320","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/comments?post=3320"}],"version-history":[{"count":1,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts\/3320\/revisions"}],"predecessor-version":[{"id":3321,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/posts\/3320\/revisions\/3321"}],"wp:attachment":[{"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/media?parent=3320"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/categories?post=3320"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/optimumsportsperformance.com\/blog\/wp-json\/wp\/v2\/tags?post=3320"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}