我需要像bio这样的数据,以及使用Google电子表格从公共Instagram帐户发布的帖子数量。我能够提取数量的粉丝和关注者。你能帮忙吗?
答案 0 :(得分:3)
这个公式看起来真的很复杂,但实际上它是 - 是一个importxml公式,从“脚本”部分提取数据,其中包含你想要的部分......然后使用一堆regexreplace / extract函数我将数据清理成可读格式:
以此公开页面为例: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)),"^.*"": (.*)"))},"[""}{]","")))
我最终使用了一个文字数组,这样我就可以有效地从字段中拆分字段名称,显然你可以按照你真正想要的格式进行格式化,但是请看这里的图像来演示它所提取的字段:
另请注意,关注者,follow_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""")