Я хочу создать программу python, которая будет находить и загружать файлы из списка страниц, я обнаружил, что Chrome расширение Chrono Download Manager довольно эффективно для идентификации различных типов файлов. загружается на страницу для скачивания. Я хотел бы попытаться воссоздать эту функциональность в своей программе, чтобы я мог настроить, откуда он получает файлы и что он с ними делает.
В файлах Chrono Download Manager находится файл под названием sniffer. js (Sniffer - это раздел расширений, который идентифицирует файлы):
chrome.runtime.onMessage.addListener(function(a) {
switch (a.cmd) {
case "g_links":
a = function(a, g, h) {
if (a && g)
for (var c = 0, k = a.length; c < k; ++c) {
var e = a[c][g];
f.test(e) && void 0 == b[e] && (d.push({
url: e,
desc: a[c].download || "",
text: h ? a[c][h] || "" : "",
title: a[c].title || "",
referer: ""
}), b[e] = 1)
}
};
var d = [],
f = /^(((ftp|https?):\/\/)|(data:)).+$/i,
b = {};
a(document.links, "href", "text");
a(document.images, "src", "alt");
a(document.getElementsByTagName("audio"), "src");
a(document.getElementsByTagName("video"), "src");
a(document.getElementsByTagName("source"), "src");
a(document.getElementsByTagName("script"), "src");
a(document.getElementsByTagName("link"), "href");
0 < d.length && chrome.runtime.sendMessage({
cmd: "add_links",
data: d
})
}
});
document.addEventListener("mousedown", function(a) {
function d(a) {
for (; a && a.tagName;) {
if ("a" == a.tagName.toLowerCase()) return a;
a = a.parentNode
}
return null
}
function f(a) {
for (; a;) {
if (a.src) return a;
a = a.parentNode
}
return null
}
if (0 <= a.button && 2 >= a.button) {
var b = d(a.target);
b && b.href && "j" != b.href[0] && chrome.runtime.sendMessage({
cmd: "url_desc",
url: b.href,
download: (b.download || "").trim(),
text: (b.text || "").trim(),
title: (b.title || "").trim()
});
(a = f(a.target)) && a.src && chrome.runtime.sendMessage({
cmd: "url_desc",
url: a.src,
download: (a.download || "").trim(),
text: (a.alt || "").trim(),
title: (a.title || "").trim()
})
}
}, !0);
Я думаю, что sniffer. js файл - это часть, которая позволяет расширению находить файлы, если я прав, можно ли воссоздать это (например, часть a(document.getElementsByTagName("video"),"src");
) в какой-либо форме, используя python, если да, то как мне это сделать это и что я должен прочитать? Могу ли я использовать такие вещи, как l xml, beautifulsoup и chromedriver?
Любая помощь и советы, которые вы можете дать, будут очень признательны.
Liam