我想知道某个网站是否允许您上传文件。我可以想到网站执行此操作的两种主要方式,理想情况下我希望能够检测到这两种方式:
PhantomJS 文档有以下示例片段:
var webPage = require('webpage');
var page = webPage.create();
page.uploadFile('input[name=image]', '/path/to/some/photo.jpg');
Run Code Online (Sandbox Code Playgroud)
但不清楚我如何弄清楚它input[name=image]实际上支持上传。
目前,我的爬虫正在跟踪网站上的所有链接和按钮,但我不确定如何检测“文件上传弹出窗口已打开”。D&D 的案例对我来说更不清楚。我需要一个针对单个页面的解决方案,显然我可以将其应用到我通过的每个页面。
更新事实 证明,大多数情况下这都可以解决问题:
document.querySelector('input[type=file]').click()
Run Code Online (Sandbox Code Playgroud)
然而,D&D 区域并不总是可点击的,并且您不能总是假设它[ondrop]会存在。有时,删除侦听器会在代码中添加:
object.addEventListener("drop", myScript);
Run Code Online (Sandbox Code Playgroud)
那么我该如何检查这些元素的存在呢?
我有这个 python 字典,我想将这些数据写入 Excel 文件。
\n注意:有很多类别,每个类别有很多汽车(为简单起见,我使用了 2 个类别)
\ndata = {"Category": {"Diesel" : [{\n "Name": "Land Rover", \n "Description":"No Description Found", \n "Price": "\xc2\xa3 x" }],\n\n "Electric" : [{"Name": "Tesla Model X", \n "Description":"No Description Found", \n "Price": "\xc2\xa3 x" }]\n } \n }\nRun Code Online (Sandbox Code Playgroud)\n期望的输出:
\n| 类别 | 姓名 | 描述 | 价格 |
|---|---|---|---|
| 柴油机 | |||
| 路虎 | 未找到描述 | \xc2\xa3 x | |
| 电的 | |||
| 特斯拉 Model X | 未找到描述 | \xc2\xa3 x |
dataframe ×1
dictionary ×1
excel ×1
file-upload ×1
javascript ×1
pandas ×1
python ×1
selenium ×1
web-crawler ×1
web-scraping ×1