R语言期末作业

题目:

目标: 1,电影名称(中文);2,导演以及主演;3,年代; 4,国别;5,评分;6,评价人数;7,是否可播放; 8,电影类型

readLines版本

运行结果

源代码

url0 = "https://movie.douban.com/top250?start="
for(i in seq(0,225,25))
{
  url=paste(url0,as.character(i),"&filter=",sep="")
  web =readLines(url,encoding ='UTF-8')
  #电影名称
  moviename=web[grep("<img width=\"100\" alt=\"",web)]
  moviename=substr(moviename,regexpr("alt=\"",moviename)+5,regexpr("src=",moviename)-3)
  #导演以及主演
  director=web[grep("导演: ",web)]
  director=gsub(" ", "", director)
  director=gsub("&nbsp;&nbsp;&nbsp;主演:",",",director)
  director=substr(director,regexpr("导演:",director)+5,regexpr("...<br>",director)-1)
  age0=web[grep("导演: ",web)+1]
  age0=gsub(" ", "", age0)
  #年代
  age=substr(age0,0,4)
  #国别
  country0=substr(age0,18,100)
  country=substr(country0,1,regexpr("&nbsp;",country0)-1)
  #评分
  scoure=web[grep("<div class=\"star\">",web)+2]
  scoure=gsub(" ","",scoure)
  scoure=substr(scoure,regexpr("average\">",scoure)+9,regexpr("</span>",scoure)-1)
  #评价人数
  number=web[grep("<div class=\"star\">",web)+4]
  number=gsub(" ","",number)
  number=substr(number,regexpr("<span>",number)+6,regexpr("人",number)-1)
  #是否可播放
  play=web[grep("<div class=\"hd\">",web)+8]
  play=gsub(" ","",play)
  play=gsub("</div>","<spanclass=\"playable\">[不可播放]</span>",play)
  play=gsub("<divclass=\"bd\">","<spanclass=\"playable\">[不可播放]</span>",play)
  play=substr(play,regexpr("\\[",play)+1,regexpr("]",play)-1)
  #电影类型
  class=substr(country0,regexpr("&nbsp;/&nbsp;",country0)+13,100)
  #储存
  TOP250=data.frame(
    "电影名称"=moviename,
    "导演以及主演"=director,
    "年代"=age,
    "国别"=country,
    "评分"=scoure,
    "评分人数"=number,
    "是否可播放"=play,
    "电影类型"=class)
  if(i==0)
    write.table(TOP250,"D:TOP250.csv",append=TRUE,row.names=F,col.names=T,sep = ",")
  else
    write.table(TOP250,"D:TOP250.csv",append=TRUE,row.names=F,col.names=F,sep = ",")
}

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷烬亿下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值