我是新来的网络抓取,目前我正在尝试为一个研究项目下载超过10万部电影的字幕文件。每部电影都有独特的IMDb ID(即,初始识别码为1375666
)。我在R中有一个包含102524 ID的列表,我想从opensubtitles.org下载相应的字幕。网页截图来自opensubtitles.org在R
每部电影有网站自己的页面,例如,成立至今:
https://www.opensubtitles.org/en/search/sublanguageid-eng/imdbid-1375666
下载通过点击表格中的第一个环节叫“电影名字上获得的字幕链接“,它会将您带到新页面,然后单击该页面上的”下载按钮“。
我使用rvest
刮网页,我已经写了这个代码:
for(i in 1:102524) {
subtitle.url = paste0("https://www.opensubtitles.org/en/search/sublanguageid-eng/imdbid-", movie.ids[i])
read_html(subtitle.url) %>%
html_nodes(".head+ .expandable .bnone")
# Not sure where to go from here
}
如何做到这一点任何帮助将不胜感激。
编辑:我知道我问的东西很复杂,但是从哪里开始的任何指针都会很棒。
代码是否会暂停而不会超载该网站?你甚至读过http://trac.opensubtitles.org/projects/opensubtitles/wiki/DevReadFirst(就像它在网站上说的那样)? – hrbrmstr
@hrbrmstr,请参阅下面的答案,其中执行时间延迟。 (当我想出如何去做我正在尝试做的事情时,我会添加一段时间的延迟)。 –
GGamba是一个体面的章(注意我的评论)。你的第二个问题暗示你的设计故意规避你认为你有权获得的B/C网站限制。我不会对我对你的承诺的信念做任何假设或评论,因为这会增加你最终项目的延迟。 – hrbrmstr