因此,我要逐个浏览每个链接,以下载用于Photoshop预设的文件,至少可以说有点累。我一直在研究实际抓取文件的方法,而不仅是HTML
链接,还是某种从页面一次获取所有文件的方法,但是我没有运气。我并不精通python
,因此对我来说没有任何意义,并且为我安装的为此安装的程序没有下载我想要的内容。
我已经尝试了chrome扩展程序,网络抓取软件,但是它并没有按照我想要的方式工作。
https://www.brusheezy.com/brushes/22482-star-glow-brushes
这只是一页上的链接之一
我希望找到一些可以从页面链接上实际下载zip文件的东西。
答案 0 :(得分:0)
注意:我尚未使此方法起作用,但认为该方法可能值得考虑。我将尝试返回并对其进行改进或删除。
您也许可以在浏览器的开发工具中按照以下方式进行操作。您必须为此禁用弹出窗口阻止程序。这对我来说不太有效,因为下载按钮开始引发帐户注册对话框。我怀疑他们可能会在下载一定次数后执行此操作,但是如果您有帐户并登录,那么可能会更好。
导航到上传者页面,打开浏览器的开发人员工具,粘贴以下代码,然后按Enter。
function go () {
// get all the links from the grid on the current page
const hrefs = Array.from(document.querySelectorAll('.ez-resource-grid a[href]')).map(a => a.href);
// start the loading
next(hrefs);
}
function next ([current, ...remaining]) {
// open a new tab/window with the current href;
const w = window.open(current, '_blank');
// function to find the download button and "click" it.
function triggerDownload () {
try {
w.querySelector('#download-button').click();
}
catch (e) {
// something went wrong.
}
// if we haven't consumed all the links yet, start the next one.
if (remaining.length) {
next(remaining);
// I tried adding a delay here thinking the account signup dialog
// might be triggered by too many rapid requests, but it didn't
// seem to matter.
// setTimeout(() => next(remaining), 6000);
}
}
// give the page a few seconds to load before attempting
// to trigger the download. This should be replaced with
// a ready event listener instead of a fixed delay, something
// like:
// w.document.addEventListener('readystatechange', triggerDownload)
// but i'm tired and my first attempt didn't appear to work so i'm
// throwing in this static delay hack instead.
setTimeout(triggerDownload, 5000);
}
// kick it off
go();