我需要使用谷歌电子表格获取个人简介等数据以及来自公共 Instagram 帐户的帖子数量。我能够提取关注者和关注者的数量。你能帮忙吗?
这个公式看起来非常复杂,但实际上它就是一个 importxml 公式,用于从“脚本”部分提取数据,其中包含您想要的部分...然后使用我清理的一堆正则表达式替换/提取函数将数据转换为可读格式:
以此公共页面为例:http://www.instagram.com/salesforce/
然后在 B1 或 C1 中输入:
=iferror(arrayformula(regexreplace({arrayformula(regexextract(transpose(split(regexreplace(regexreplace(concatenate(IMPORTXML(Sheet2!A1,"//script")),"\n",""),"(^.*""ProfilePage"": \[{""user"": {""username"": "")(.*)(nodes.*)","$2"),", """,false)),"(^.*)"": .*")),arrayformula(regexextract(transpose(split(regexreplace(regexreplace(concatenate(IMPORTXML(Sheet2!A1,"//script")),"\n",""),"(^.*""ProfilePage"": \[{""user"": {""username"": "")(.*)(nodes.*)","$2"),", """,false)),"^.*"": (.*)"))},"[""}{]","")))
我最终使用了一个文字数组,这样我就可以有效地将字段名称与值分开,显然您可以按照您真正想要的方式进行格式化,但是请参阅此处的图像,该图像演示了它提取的字段:
另请注意,followers、followed_by 和 media: count 是您提到的字段(例如,帖子数称为媒体计数),然后传记当然是不言自明的
更新:回答您的评论 - 如果您想获取其他 2 个值,您可以在单个 regexextract 函数中执行此操作,如下所示:
如果您使用原始导入数据,这些正则表达式可以工作:
媒体数量:
=REGEXEXTRACT(concatenate(IMPORTDATA(E1)),"""media: {""count"": (\d+)page_info: {")
简介:
=REGEXEXTRACT(concatenate(IMPORTDATA(E1)),"biography: ""(.*)""full_name")
如果您使用 importxml 方法,这些方法有效:
=REGEXEXTRACT(A1,"biography"": ""(.*)"", "".*""media"": {""count"": (\d+), ""page_info""")
这会创建 2 个捕获组,自动将它们放入自己的相邻单元格中,或者您可以单独执行它们,即:
传记:
=REGEXEXTRACT(A1,"biography"": ""(.*)"", "".*""media")
媒体数量:
=REGEXEXTRACT(A1,"media"": {""count"": (\d+), ""page_info""")