问题
我正在对一长串公司进行一系列研究,我想知道他们的网站是什么。公司被收购的一个很好的指标是,其网站缺失或其公司网站指向具有不同名称的公司。
所以我想拿一列公司名称,将它们提交给网络搜索并找回最有可能的网站。 我没有不完美的重新使用,但它比手动搜索每个更好。
解
我从我的JMP表中的一个名为“Companies”的列开始。我将值作为列表获取,然后通过搜索遍历列表。我在新列表中捕获r的结果,在搜索完成后,我使用Set Values来将值添加到原始表中的空列。
有可能在JMP中完成所有这些,但我不知道如何。但我确实知道怎么跑
我从他们的例子开始,这需要几个包:beautifulsoup4和google(即pip install google)。 此代码返回一个搜索结果。
(This is Python)
try:
from google import search
except ImportError:
print("No module named 'google' found")
# to search
query = "SAS Institute inc"
for j in search(query, tld="co.in", num=1, stop=1, pause=2):
print(j)
所以我只是将python代码包装在一个小JSL中来管理获取列表,迭代搜索和结果。
names default to here(1);
outlist={}; clist=:Company<<GET values=""></GET>
唯一值得注意的真正技巧是python代码的整个文本都在Substitute函数中。在替换中,删除“xyzxyz”并替换为列值。 在JMP的未来版本(如v14)中,有一些更好的方法来处理变量和使用python,但是在这里我正在编写一个文本文件,python代码到磁盘然后运行python程序。
该程序返回一个值,我添加到列表中。一个公司名称进入,一个项目出来。因为这是1:1,我可以把列表放到一列中,一切都应该排成一行。我的一些返回结果需要工作,但大多数都是完美的。
讨论
我几乎100%确定有更好的解决方案,但这需要大约15分钟才能组合在一起,并且在运行10分钟之后,我有一个大约99%完成的列表。 那么,你有更好的东西,请发布。 在JMP和其他软件包之间来回切换,以及在JMP中使用其他工具的灵活性使我的工作变得更加轻松。 在我的例子中,我有大约600个名字可供使用。复制粘贴乏味可能有几个小时的药物,但有了这个我完成了所有工作,仍然有时间在较短的时间内博客,它将采取我手动做。另外,明天我得到列表的后半部分。我可以再次运行脚本。
@Craige_Hales ,谢谢,... (哎呀!是运行程序从你的帖子复制粘贴?)