library(rvest)
library(dplyr)
library(stringr)
library(xlsx)
library(xopen)
library(lattice)
library(ggplot2)
library(ggthemes)
library(plyr)

first_page <- "https://w...content-available-to-author-only...t.nu/kategori.php?k=s427524853&catId=353&sort=price_include_shipping&direction=asc"
urls <- NULL

# 產生欲爬的網頁連結 (第一頁到第七頁)
for (i in 0:6){
  if (i==0){
    urls <- first_page
  } else{
    urls <- c(urls,paste0(first_page,"&offset=",24*i))
  }
}

dt0 <- data.frame()
for (url in urls){
  price_watch <- read_html(url) %>%
    html_nodes(".kGpEgQ")
  
  ### 1.產品名稱
  Item <- price_watch %>% html_attr("aria-label")
  ### 2.產品品牌
  Brand <- word(Item,1) #用word()截取 Item 第一組字串
  ### 3.產品連結, 合併成完整URL
  Full_URL <- price_watch %>% html_attr("href") %>% 
    paste0("https://w...content-available-to-author-only...t.nu", .)
  ### 4.產品價格，然後去除空格與kr字串，轉成數值
  Price <- price_watch %>% 
    html_nodes(".bhjqZq") %>% 
    html_text() %>% 
    gsub("kr|\u00A0", "", .) %>% 
    as.numeric
  
  dt1 <- data.frame(Item, Brand, Full_URL, Price)
  dt0 <- rbind(dt1, dt0)
}

#抓每個產品連結裡的規格
spec <- data.frame()
spec_url <- as.character(dt0$Full_URL)

for (j in 1:length(dt0$Full_URL)) {
  spec[j,1:6] <- 
    read_html(spec_url[j], encoding = "UTF-8") %>%
    html_nodes(".iyOoKG") %>%
    html_text() %>%
    gsub("\u00A0","", .)
}

names(spec)[1:6] <-c("CPU", "Display", "RAM", "GPU", "Resolution", "Weight (Kg)")
spec$Display <- gsub("tum","", spec$Display)
spec$`Weight (Kg)`<- gsub("kg","", spec$`Weight (Kg)`) %>% as.numeric()

dt0 <- cbind(dt0,spec)
dt0 <- dt0[c(2,1,4,5:10,3)]
dt0