我将非常感谢任何建议。我试图抓取一个论坛使用嵌套的for循环和if语句来捕捉所有的评论和回复。我有一种感觉,它的缩进,但不能弄清楚。我循环通过一个列表的网址,然后循环通过每个网址的页面,然后使用if语句来打破如果'下一页'按钮是失踪。任何建议将非常感激
df_comments <- tibble()
for (j in df_iva$url) {
for (i in seq(from = 1, to = 100000, by = 1)){
link = paste0(j, "/p", i)
page = read_html(page)
Sys.sleep(runif(1, min=1.29, max=4.89))
post_title <- j %>% str_remove('https://forums.moneysavingexpert.com/discussion/') %>% str_remove('p*')
user <- page %>% html_nodes(xpath = '//a[@class="Username js-userCard"]') %>% html_attr('data-userid')
date_time <- page %>% html_nodes(xpath = '//div[@class="DataBox DataBox-Comments"]//div[@class="Meta RecordMeta"]//span[@class="MItem DateCreated"]//a//time') %>% html_attr('datetime') %>% ymd_hms()
df_comments = rbind(df_comments, tibble(post_title, user, date_time))
if (page %>% html_nodes(xpath = '//div[@class="P PagerWrap"]//a[@class="Next"]') %>% html_attr('rel') == "next") {
print(link)
}
else
{
print("finished")
break
}
}
print(paste0("##### ", j, " ####"))
Sys.sleep(runif(1, min=3.29, max=12.89))
}
1条答案
按热度按时间tez616oj1#
如果没有可重现的错误,很难判断问题的确切位置,但是
else
语句应该与相关if
语句的结束}
出现在同一行上。