Scraping URLs

library(rvest)
library(stringr)
library(httr2)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# List of URLs to scrape
urls <- c(
  "https://www.hulu.com",
  "https://www.hbomax.com", 
  "https://www.netflix.com"
)

# Empty list to collect results
results <- list()

for (i in seq_along(urls)) {
  
  Sys.sleep(1.5) # polite delay between requests
  
  page <- read_html(urls[i])
  
  title_tag <- page %>%
    html_element("title") %>%
    html_text2() %>%
    str_squish()
  title_tag 
  meta_desc <- page %>%
    html_element("meta[name='description']") %>%
    html_attr("content") %>%
    str_squish()
  meta_desc
  
  h1_tags <- page %>%
    html_elements("h1") %>%
    html_text2() %>%
    str_squish() %>%
    str_c(collapse = " | ")
  h1_tags
  
  h2_tags <- page %>%
    html_elements("h2") %>%
    html_text2() %>%
    str_squish() %>%
    str_c(collapse = " | ")
  
  h2_tags
  
  h3_tags <- page %>%
    html_elements("h3") %>%
    html_text2() %>%
    str_squish() %>%
    str_c(collapse = " | ")
  
  h3_tags
  
  # Store this page's results as a one-row tibble
  results[[i]] <- tibble(
    url = urls[i],
    title = title_tag,
    meta_description = meta_desc,
    h1 = h1_tags,
    h2 = h2_tags,
    h3 = h3_tags
  )
}

# Combine all rows into one data frame
seo_data <- bind_rows(results)

seo_data
## # A tibble: 3 × 6
##   url                     title               meta_description h1    h2    h3   
##   <chr>                   <chr>               <chr>            <chr> <chr> <chr>
## 1 https://www.hulu.com    Stream TV and Movi… Watch TV shows … "Ent… Tons… TV S…
## 2 https://www.hbomax.com  HBO Max | Stream S… Stream must-see… "Mus… Choo… $6.5…
## 3 https://www.netflix.com Netflix - Watch TV… Watch Netflix m… "Unl… Tren… Read…
write.csv(seo_data, file = "seo_data.csv", row.names = FALSE)

seo_data$title
## [1] "Stream TV and Movies Live and Online | Hulu"         
## [2] "HBO Max | Stream Series and Movies"                  
## [3] "Netflix - Watch TV Shows Online, Watch Movies Online"
seo_data$meta_description
## [1] "Watch TV shows and movies online. Stream TV episodes of Shōgun, Grey's Anatomy, This Is Us, Bob's Burgers, Empire, SNL, and popular movies on your favorite devices. Bundle with Disney+ for $12.99."
## [2] "Stream must-see series, hit movies, exclusive originals, family favorites, and live sports."                                                                                                         
## [3] "Watch Netflix movies & TV shows online or stream right to your smart TV, game console, PC, Mac, mobile, tablet and more."
seo_data$h1
## [1] "Entertainment for every day |  | "                          
## [2] "Must-see series, movies & more. | Save on all yearly plans."
## [3] "Unlimited movies, TV shows, and more"
seo_data$h2
## [1] "Tons of shows and movies with Hulu | Watch Live TV From 100+ Channels | Channels in your area | Select Your Plan | Next stop: Shop Hulu, powered by Snowcommerce"                                                                                                                                               
## [2] "Choose an HBO Max plan or bundle to start streaming. | The plot twist everyone's been waiting for. | Find Your Perfect Plan | Forbidden Door | See What's New | Live Sports | Get the Disney+, Hulu, HBO Max Bundle | Series | Movies | Home Shows | Family Time | Discover The Best In | Still Have Questions?"
## [3] "Trending Now | More Reasons to Join | Frequently Asked Questions"
seo_data$h3
## [1] "TV Shows | Movies | Hulu Originals | Shows & Movies | Get top national and local channels on Hulu (With Ads) + Live TV with your favorite live sports, news, and events - plus the entire Hulu streaming library. With Unlimited DVR, store Live TV recordings for up to nine months and fast-forward through your DVR content. Includes access to endless entertainment with Disney+ and live sports with ESPN. | Hulu streaming library with tons of episodes and movies | Endless entertainment with Disney+ | No ads in Hulu streaming library | No ads on Disney+ | Download and watch on Hulu | Download and watch on Disney+ | Available Add-ons | Entertainment Add-on | Sports Add-on | Español Add-on | BROWSE | BROWSE | HELP | HELP | ABOUT US | ABOUT US"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
## [2] "$6.58/mo when you prepay for a year | Disney Plus, Hulu, HBO Max Bundle | With Ads | No Ads | Basic With Ads | Standard | Premium | Live Sports | Disney Plus, Hulu, HBO Max Bundle | Acclaimed | Hit | Favorite | Quality"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
## [3] "Ready to watch? Enter your email to create or restart your membership. | The Netflix you love for just $8.99. | Enjoy on your TV | Download your shows to watch offline | Watch everywhere | Create profiles for kids | .default-ltr-iqcdef-cache-1gp2q9k{width:100%;background:none;border:none;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:inherit;font-family:inherit;font-size:inherit;text-align:left;}.default-ltr-iqcdef-cache-1cfwg8l{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:none;border-radius:0;border:0;box-sizing:content-box;color:inherit;cursor:default;display:inline;font:inherit;letter-spacing:inherit;line-height:inherit;margin:0;opacity:1;padding:0;-webkit-text-decoration:none;text-decoration:none;--wct--focus-ring--color-default:#a9a9a9;--wct--focus-ring--width:0.3125rem;--wct--focus-ring--style:auto;--wct--focus-ring--color:var(--wct--focus-ring--color-default);--wct--focus-ring--offset:0rem;width:100%;background:none;border:none;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:inherit;font-family:inherit;font-size:inherit;text-align:left;}.default-ltr-iqcdef-cache-1cfwg8l[aria-disabled]{cursor:not-allowed;opacity:0.5;}@supports (outline-color: Highlight){.default-ltr-iqcdef-cache-1cfwg8l{--wct--focus-ring--color-default:Highlight;}}@supports (outline-color: -webkit-focus-ring-color){.default-ltr-iqcdef-cache-1cfwg8l{--wct--focus-ring--color-default:-webkit-focus-ring-color;}}.default-ltr-iqcdef-cache-1cfwg8l:focus:not(:focus-visible){outline-style:var(--wct--focus-ring--override-on, var(--wct--focus-ring--style)) var(--wct--focus-ring--override-off, none);}.default-ltr-iqcdef-cache-1cfwg8l:focus{outline-width:var(--wct--focus-ring--width);outline-style:var(--wct--focus-ring--style);outline-color:var(--wct--focus-ring--color);outline-offset:var(--wct--focus-ring--offset);}What is Netflix?.default-ltr-iqcdef-cache-1q5p6qn{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);}.default-ltr-iqcdef-cache-1hr9o8v{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.default-ltr-iqcdef-cache-1hr9o8v>svg,.default-ltr-iqcdef-cache-1hr9o8v>img[data-hawkins-id],.default-ltr-iqcdef-cache-1hr9o8v>span[data-hawkins-id]{margin-left:var(--wct--local-design--Accordion-HeadlineSpaceBetweenIconText);transition-duration:var(--wct--local-design--Accordion-HeadlineIconDuration);transition-property:transform;transition-timing-function:var(--wct--local-design--Accordion-HeadlineIconEasing);}@media screen and (max-width: 959.98px){.default-ltr-iqcdef-cache-1hr9o8v>svg:first-of-type,.default-ltr-iqcdef-cache-1hr9o8v>img[data-hawkins-id]:first-of-type,.default-ltr-iqcdef-cache-1hr9o8v>span[data-hawkins-id]:first-of-type{display:none;}}@media screen and (min-width: 960px){.default-ltr-iqcdef-cache-1hr9o8v>svg:last-of-type,.default-ltr-iqcdef-cache-1hr9o8v>img[data-hawkins-id]:last-of-type,.default-ltr-iqcdef-cache-1hr9o8v>span[data-hawkins-id]:last-of-type{display:none;}}.default-ltr-iqcdef-cache-h4fq7z{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);}.default-ltr-iqcdef-cache-17q407x{--wct--local-design--Asset-SpaceAroundHorizontalEnd:0;--wct--local-design--Asset-SpaceAroundHorizontalStart:0;--wct--local-design--Asset-SpaceAroundVerticalEnd:0;--wct--local-design--Asset-SpaceAroundVerticalStart:0;--wct--local-design--Asset-Color:currentColor;--wct--local-design--Asset-Height:calc(36 * 0.0625rem);--wct--local-design--Asset-Layout:unset;--wct--local-design--Asset-Width:calc(36 * 0.0625rem);color:var(--wct--local-design--Asset-Color);display:var(--wct--local-design--Asset-Layout);height:var(--wct--local-design--Asset-Height);margin:var(--wct--local-design--Asset-SpaceAroundVerticalStart) var(--wct--local-design--Asset-SpaceAroundHorizontalEnd) var(--wct--local-design--Asset-SpaceAroundVerticalEnd) var(--wct--local-design--Asset-SpaceAroundHorizontalStart);width:var(--wct--local-design--Asset-Width);display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);}.default-ltr-iqcdef-cache-17q407x::before{background-color:currentColor;content:'';display:block;height:100%;-webkit-mask:var(--wct--icon--mask-default) center/100% 100% no-repeat;mask:var(--wct--icon--mask-default) center/100% 100% no-repeat;width:100%;}@supports (container-type: inline-size){.default-ltr-iqcdef-cache-17q407x{container-type:inline-size;}@container (width < calc(24 * 0.0625rem)){.default-ltr-iqcdef-cache-17q407x::before{-webkit-mask-image:var(--wct--icon--mask-small);mask-image:var(--wct--icon--mask-small);}}@container (width >= calc(24 * 0.0625rem)) and (width < calc(36 * 0.0625rem)){.default-ltr-iqcdef-cache-17q407x::before{-webkit-mask-image:var(--wct--icon--mask-medium);mask-image:var(--wct--icon--mask-medium);}}@container (width >= calc(36 * 0.0625rem)) and (width < calc(48 * 0.0625rem)){.default-ltr-iqcdef-cache-17q407x::before{-webkit-mask-image:var(--wct--icon--mask-large);mask-image:var(--wct--icon--mask-large);}}@container (width >= calc(48 * 0.0625rem)){.default-ltr-iqcdef-cache-17q407x::before{-webkit-mask-image:var(--wct--icon--mask-extra-large);mask-image:var(--wct--icon--mask-extra-large);}}}.default-ltr-iqcdef-cache-lp3tno{--wct--local-design--Asset-SpaceAroundHorizontalEnd:0;--wct--local-design--Asset-SpaceAroundHorizontalStart:0;--wct--local-design--Asset-SpaceAroundVerticalEnd:0;--wct--local-design--Asset-SpaceAroundVerticalStart:0;--wct--local-design--Asset-Color:currentColor;--wct--local-design--Asset-Height:calc(24 * 0.0625rem);--wct--local-design--Asset-Layout:unset;--wct--local-design--Asset-Width:calc(24 * 0.0625rem);color:var(--wct--local-design--Asset-Color);display:var(--wct--local-design--Asset-Layout);height:var(--wct--local-design--Asset-Height);margin:var(--wct--local-design--Asset-SpaceAroundVerticalStart) var(--wct--local-design--Asset-SpaceAroundHorizontalEnd) var(--wct--local-design--Asset-SpaceAroundVerticalEnd) var(--wct--local-design--Asset-SpaceAroundHorizontalStart);width:var(--wct--local-design--Asset-Width);display:inline-block;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);}.default-ltr-iqcdef-cache-lp3tno::before{background-color:currentColor;content:'';display:block;height:100%;-webkit-mask:var(--wct--icon--mask-default) center/100% 100% no-repeat;mask:var(--wct--icon--mask-default) center/100% 100% no-repeat;width:100%;}@supports (container-type: inline-size){.default-ltr-iqcdef-cache-lp3tno{container-type:inline-size;}@container (width < calc(24 * 0.0625rem)){.default-ltr-iqcdef-cache-lp3tno::before{-webkit-mask-image:var(--wct--icon--mask-small);mask-image:var(--wct--icon--mask-small);}}@container (width >= calc(24 * 0.0625rem)) and (width < calc(36 * 0.0625rem)){.default-ltr-iqcdef-cache-lp3tno::before{-webkit-mask-image:var(--wct--icon--mask-medium);mask-image:var(--wct--icon--mask-medium);}}@container (width >= calc(36 * 0.0625rem)) and (width < calc(48 * 0.0625rem)){.default-ltr-iqcdef-cache-lp3tno::before{-webkit-mask-image:var(--wct--icon--mask-large);mask-image:var(--wct--icon--mask-large);}}@container (width >= calc(48 * 0.0625rem)){.default-ltr-iqcdef-cache-lp3tno::before{-webkit-mask-image:var(--wct--icon--mask-extra-large);mask-image:var(--wct--icon--mask-extra-large);}}} | How much does Netflix cost? | Where can I watch? | How do I cancel? | What can I watch on Netflix? | Is Netflix good for kids? | Ready to watch? Enter your email to create or restart your membership."

Summary

As shown, I chose to review three streaming media platforms. I think Netflix has the best results in terms of SEO elements. It has good keywords in the title and a concise/descriptive meta description. Not as many good keywords for HBO Max and Hulu’s is very cluttered and long for some reason.