【发布时间】:2022-01-19 12:46:04
【问题描述】:
我想知道某个网站是否允许您上传文件。我可以想到网站执行此操作的两种主要方式,理想情况下我希望能够同时检测到这两种方式:
- 按钮
- 拖放
PhantomJS 文档中有这个例子 sn-p:
var webPage = require('webpage');
var page = webPage.create();
page.uploadFile('input[name=image]', '/path/to/some/photo.jpg');
但我不清楚我是如何确定input[name=image] 实际支持上传的。
目前,我的爬虫正在跟踪网站上的所有链接和按钮,但我不确定如何检测“文件上传弹出窗口已打开”。对我来说,D&D 案子就更不清楚了。我需要一个单一页面的解决方案,显然我可以将它应用到我通过的每个页面。
更新 事实证明,这在大多数情况下都可以解决问题:
document.querySelector('input[type=file]').click()
但是,D&D 区域并不总是可点击的,您不能总是假设[ondrop] 会出现。有时,在代码中添加了 drop listener:
object.addEventListener("drop", myScript);
那我如何检查这些元素的存在呢?
【问题讨论】:
-
input[type=file] 怎么样?
-
你的目标是什么?
-
识别互联网上的cyberlocker网站,这是一个非常强大的功能
-
答案是,你不能。文件上传/下载甚至不必通过 UI 进行。所以,我不知道你的具体要求是什么,但如果你需要任何可靠性,你应该重新评估什么是可能的。
标签: javascript selenium web-scraping file-upload web-crawler