Mar*_*lin 13 javascript youtube youtube-api youtube-data-api
我正试图找出一种方法来使用javascript抓住最多订阅的前5万个youtube频道.这些只需要抓取一次,并存储在一个文件中,用于网页中的自动完成输入.
通过使用参数搜索search:list(/ youtube/v3/search),我已经非常接近获得第一个前50名maxResults=50, order=viewCount, part=snippet, type=channel, fields=nextPageToken,items(snippet(channelId,title))
返回:
{
"nextPageToken": "CDIQAA",
"items": [{
"snippet": {
"channelId": "UC-9-kyTW8ZkZNDHQJ6FgpwQ",
"title": "Music"
}
},{
"snippet": {
"channelId": "UC-lHJZR3Gqxm24_Vd_AJ5Yw",
"title": "PewDiePie"
}
},{
"snippet": {
"channelId": "UCVPYbobPRzz0SjinWekjUBw",
"title": "???????? ?????"
}
},{
"snippet": {
"channelId": "UCam8T03EOFBsNdR0thrFHdQ",
"title": "VEGETTA777"
}
},...
Run Code Online (Sandbox Code Playgroud)
然后,我所要做的就是使用nextPageToken获取前50000的列表来获取1000次.
不幸的是,通过排序relevance,rating,viewCount,或没有不屈服的50个订阅的频道,并有不似乎是任何形式的方式由用户数量根据文件对它们进行排序; 所以好像我被卡住了.
小智 -6
要做的事情是运行一个服务器端脚本,在循环中进行 RESTful api 调用,并将结果写入 .JSON 文件,以保存结果。为此,您可以创建 PHP 脚本,该脚本对 google 进行 REST API 调用,并获取前 50 个结果,然后使用文件写入操作来写入结果。将 PHP 脚本作为核心作业运行以定期更新结果。在您设置的每个特定时间间隔执行玉米作业可以保持结果新鲜。
点击带有循环的 CURL 命令,每次都会获取 50 个结果,并创建临时文件,并将所有结果保存在 .JSON 文件中。获取结果后,将旧的 JSON 文件替换为新创建的临时文件。这将定期生成新的 JSON 文件,如果对数据进行任何更改,则会产生新结果。
然而,使用临时文件的想法是避免脚本避免由于对同一文件进行一致的读写操作而导致 AJAX 等待/减慢。一旦临时文件被写入,只需使用 move 命令来替换实际文件。
确保在 AJAX 结果中使用缓存控制标头来保持数据的新鲜度。
| 归档时间: |
|
| 查看次数: |
1148 次 |
| 最近记录: |