是Javascript的新手。所以任何帮助都是很好的。
我使用fetch从搜索中检索html,如下所示:
var downloadHtml;
fetch(
'https://cors-
anywhere.herokuapp.com/https://www.youtube.com/results?
search_query=A+Song'
)
.then(r => r.text())
.then(data => (downloadHTML = data))
然后,是否可以调用另一个函数或对下载的内容执行匹配。因此,在下面的方法中,如果您要在有问题的Url的基本页面上执行此操作,它将返回所有有问题的视频标签的列表。
let GetSongLinks = () => {
var songs = []
let count = document.querySelectorAll('a#video-title.yt-
simple-endpoint.style-scope.ytd-video-renderer').length;
const baseUrl = 'https://www.youtube.com/watch?v='
for (var i = 0; i < count; i++) {
let baseSong = document.querySelectorAll
('a#video-title.yt-simple-endpoint.style-scope.ytd-video-
renderer')[i].innerText
let songId = document.querySelectorAll
('a#video-title.yt-simple-endpoint.style-scope.ytd-video-
renderer'
)[i].data.watchEndpoint.videoId
console.log(songs.push( baseSong + ' - ' + baseUrl + songId))
}
}
是否可以在返回promise之后调用此函数,并将数据传递给函数以查询这些数据?或者,有没有一种方法可以将downloadHtml放入变量中以找到这些值?或者即使这是可能的?还是不想?如有任何建议,我们将不胜感激。
发布于 2018-07-28 06:14:12
据我所知,你绝对可以在.then()
中调用这样的清理方法。归根结底是风格问题。让该方法接受data
,并在第二个.then()
中调用它。
可能会有方法来抓取你的数据。看不到数据是很难的。考虑发布一段您得到的数据片段。
https://stackoverflow.com/questions/51565746
复制相似问题