【问题标题】:Error in htmlParse(file = data) : could not find function "htmlParse"htmlParse 中的错误(文件 = 数据):找不到函数“htmlParse”
【发布时间】:2022-06-11 22:33:30
【问题描述】:

所以我试图在 R 中做一个网络爬虫,以便做一个结构主题模型

当我执行它时,我收到以下错误:

if (file == "") { 中的错误:条件的长度 > 1 另外:警告信息: 在 readLines(con = url_f, ) 中: 在“https://www.reddit.com/r/Bitcoin/”上找到不完整的最后一行

我目前使用的通用代码是: (我知道这里的一些包对于我展示的部分是不必要的)

install.packages("jsonlite")
install.packages("tidyverse")
install.packages("dplyr")
install.packages("httr")
install.packages("RedditExtractoR")
install.packages("stm")
install.packages("stminsights")
install.packages("XML")
install.packages("RCurl")
install.packages("rvest")
install.packages("quanteda")
install.packages("xml2")
install.packages("scales")
install.packages("htmltools")

library(stminsights)
library(stm)
library(jsonlite)
library(tidyverse)
library(dplyr)
library(httr)
library(XML)
library(RCurl)
library(rvest)
library(quanteda)
library(xml2)
library(scales)
library(htmltools)
library(RedditExtractoR)



extract_links= function(url){
  url_f<-url
  data <- readLines(con = url_f,)
  parsed_data <- htmlParse(file= data)
  data_from_page<- html(parsed_data) %>%
    html_nodes(".comment,.bylink") %>% 
    html_attr(name = "href")
}


extract_data= function(url){
  url_d<-url
  data <- readLines(con = url_d,)
  parsed_data <- htmlParse(file= data)
  data_from_page<- html(parsed_data) %>%
    html_nodes(".md,.usertext-body") %>% 
    html_text()
  data_from_page<- data_from_page[-c(1,2)]
}


Links_for_crawling= function(url,threshold){
  url_d<-url
  data <- readLines(con = url_d,)
  parsed_data <- htmlParse(file= data)
  data_from_page<- html(parsed_data) %>%
    html_nodes(".comment,.bylink") %>% 
    html_text()
  comments<-strsplit(data_from_page," ")
  len<-vector()
  for(i in 1:length(comments)){
    test<-as.integer(comments[[i]][1])
    if(!is.na(test)){
      len[i]<-as.integer(comments[[i]][1])
    }else{
      print("Came to else")
      len[i]<-0
    }
  }
  threshold1<-threshold
  link_index_to_crawl<-which(len>threshold1)
  
}
get_next_page_links= function(url){
  main_url<-url
  f_data <- readLines(con = main_url,)
  parsed_data_f <- htmlParse(file= f_data)
  data_from_page_f<- html(parsed_data_f) %>%
    html_nodes(".next-button") %>% 
    html_children()
  htmltxt <- paste(capture.output(data_from_page_f, file=NULL))
  next_link<-htmltxt[3]
  next_link<-strsplit(next_link,split ="\"")[[1]][2]

}

这里似乎发生了错误

subreddits<-c("Bitcoin","CryptoCurrency","CryptoMarkets","ethtrader","dogecoin","ethereum","SHIBArmy","CryptoMoonShots","BitcoinBeginners","Cardano")
threshold_for_comment<-100
for(i in 1:length(subreddits)){
  reddit<-"https://www.reddit.com/r/"
  starting_url <-paste(reddit, subreddits[i],"/",sep = "") 
  logFile = paste("Reddit_comment_", subreddits[i],".txt",sep = "")
  
  cat("Scrapping Subreddit:",subreddits[i])
  while(!is.na(starting_url)) {
    links=extract_links(starting_url)
    links_index_to_crawl<-Links_for_crawling(starting_url,threshold_for_comment)
    for(j in links_index_to_crawl){
      link<-links[j]
      data<-extract_data(link)
      cat("Scrapping Page:",j)
      cat(link, file=logFile, append=TRUE, sep = "\n")
      cat(data, file=logFile, append=TRUE, sep = "\n")
      
    } 
    next_l<-get_next_page_links(starting_url)
    starting_url<-next_l
    print("next_link")
    print(next_l)
  }
}

任何帮助将不胜感激,ty :)

【问题讨论】:

  • html 属于哪个库?你试过 ::html 吗?

标签: html function screen-scraping r-package


猜你喜欢
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 2012-09-11
  • 2015-08-05
  • 2014-03-31
  • 2021-02-25
相关资源
最近更新 更多