为所有帖子抓取您的站点地图并获取他们的图像。您可以在浏览器控制台中使用 API 或仅使用 Javascript:
xmlin = prompt(); // view-source:biochemistri.es/sitemap1.xml
parser = new DOMParser();
xmlDoc=parser.parseFromString(xmlin,"text/xml");
xmlDoc.querySelectorAll('loc')[0].remove();
posts = xmlDoc.querySelectorAll('loc');
postlist = [];
for (i=0;i<posts.length;i++) {postlist.push(posts[i].innerHTML)};
...生成一个包含所有帖子的数组,可以浏览该数组以查找照片帖子 ( div.post.photo
) 及其复制的 URL。
然后只需使用 for 循环和 生成一个新的图像列表,使用它newImg = document.createElement('img')
设置一个origin
属性newImg.setAttribute('origin') = myPhotoList[n]
,然后可以使用它以编程方式选择图像:
document.querySelector("img[origin='"+{PhotoURL-HighRes}+"']"
(或{PhotoURL-1280}
,{PhotoURL-500}
等{PhotoURL-250}
。一旦通过 XMLHttpRequest 检索,您可以简单地切换 DOM 中的帖子。{PhotoURL-HighRes}
在我上面的示例中不起作用,它是来自页面的属性,我只是指示您的哪一部分' d 想从主题中获取 HTML。
正如这篇文章中所解释的,如果您想更具体地使用正则表达式,则有一个变量可以用作比完整原始 URL 更简洁的属性。
这将有效地将您的所有图像放到您的本地 URL 上,使用类似的 URL foo.tumblr.com/images/tumblr_kzjlfiTnfe1qz4rgho1_250.jpg
,并避免跨域限制。我猜它只有在你没有大量帖子的情况下才会起作用,因为你用来存储图像的自定义页面确实对它们的大小有限制(尽管我想你可以做第二个) .
也可能是明智的,包括设置 CSSdisplay: none
以防万一有人偶然发现该页面,以及到主页的重定向功能window.onload
或类似功能。