javascript - 如何检测网站是否允许您上传文件?

标签 javascript selenium web-scraping file-upload web-crawler

我想知道某个网站是否允许您上传文件。我可以想到网站执行此操作的两种主要方式,理想情况下我希望能够同时检测到这两种方式:

  • 按钮
  • 拖放

  • PhantomJS 文档有这个示例片段:
    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);
    
    那我该如何检查这些元素的存在呢?

    最佳答案

    您可以检查表单是否有 enctype="multipart/form-data"或不。或使用 搜索输入类型=文件 在html页面中。

    关于javascript - 如何检测网站是否允许您上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70378815/

    相关文章:

    python - 抓取网球结果,包括每场比赛的锦标赛

    javascript - 内存斐波那契的时间复杂度?

    javascript - 拦截键盘按下

    python - Web Scraping - 试图提取一些数据,但卡在最后的障碍

    python - 属性错误: 'WebElement' object has no attribute 'copy' error when moved the function Select to a common file using Selenium Python through Django

    excel - SeleniumBasic VBA 使用 WebElement 方法最快的 WebElement 循环

    python - 使用python获取网页正文中的内容

    javascript - 电子邮件输入未将电子邮件地址作为时事通讯订阅框中的有效输入

    javascript - 删除变量值中的选择器标准

    python - 如何在多线程环境中使用requests-html渲染异步页面?