问题描述
使用 Excel Power 查询,可以从以数据库/表格格式提供的网站中提取数据。
然而,许多在线数据库都非常大,以至于它们实现了搜索功能,而不是显示整个数据库,这很好,但在尝试有效地为许多关键字定位信息时会造成障碍。
https://apps.who.int/food-additives-contaminants-jecfa-database/search.aspx
是否可以创建关键字/CAS 编号列表并按顺序搜索数据库并返回找到的数据?这类似于网络抓取,但增加了预先实际搜索数据的步骤。
解决方法
完全有可能实现你想要的。 首先,您分析页面,特别是输入框和提交按钮,并找出它们的标识。我为此使用 Chrome 开发工具。只需打开所需页面并按 F12。
在这种情况下输入框是:
<input name="ctl00$ContentPlaceHolder1$txtSearch" type="text" id="ContentPlaceHolder1_txtSearch">
提交按钮是:
<input type="submit" name="ctl00$ContentPlaceHolder1$btnSearch" value="Search" id="ContentPlaceHolder1_btnSearch">
然后,您可以使用 id 使用 javascript 来寻址框:
var inputBox = document.getElementById('ContentPlaceHolder1_txtSearch');
inputBox.value = 'your search string';
和提交按钮的等价物:
var searchButton = document.getElementById('ContentPlaceHolder1_btnSearch');
searchButton.click(); // Start the search
交付结果后,您需要分析该页面以找出需要哪些 JavaScript 代码来提取您感兴趣的页面部分。或者您可以使用以下命令转储整个页面:
document.documentElement.outerHTML;
用于在网页上运行 javascript 的 Excel VBA 示例代码:
https://github.com/peakpeak-github/libEdge
修改代码以满足您的需要。