问题提出
我正在使用老师的账号在网页上实施特定操作:输入检索条件、将检索结果的部分片段复制粘贴到Excel文档当中。由于是老师的账号,所以我不太敢写爬虫脚本,以免带来不必要的风险。但纯机械式操作又比较费劲,所以我弄了一个半机械式操作,具体思路为:首先仍是手工输入检索条件,回车获取检索结果;然后使用JavaScript从检索结果中抽取出特定的字符串片段,并将其置入系统剪贴板当中;最后在表格文件里面粘贴结果。
解决方案
根据ChatGPT提供的解决方案,我们第一步要实施的操作是从文档中抽取特定字符串:
// Define the XPath expression
const xpathExpression = "//a/text()";
// Evaluate the XPath expression
const result = document.evaluate(xpathExpression, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
// Iterate through the results and log the text content
for (let i = 0; i < result.snapshotLength; i++) {
console.log(result.snapshotItem(i).textContent);
}
第二步要实施的操作是针对原始字符串实施特定的操作,获取最终要贴进Excel表格当中的字符串:
// get the last part after the space
content.split(" ").pop()
第三步操作就是将检索结果放到系统剪贴板了,这个在之前的经验贴里面也提到过,具体如下:
copy(content)
当然了,由于我的工作是特定的,所以我具体用到的代码是如下这样的一行:
copy(document.evaluate("//a[contains(@onclick, 'rp_entity_id')]/text()", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).textContent.split(" ").pop())
这是在WRDS的RavenPack数据库中,根据企业的ISIN号获取其在RavenPack数据库当中唯一标识符RP_ENTITY_ID的代码。我需要实现的功能是在第一条检索结果(snapshotItem(0)):’rp_entity_id: WZXP28’中获取空格以后的所有内容。