我需要像简历这样的数据,以及需要使用Google电子表格从公共Instagram帐户发布的帖子数。我能够提取关注者和关注者的数量。你能帮我吗 ?
这个公式看起来真的很复杂,但实际上只是-一个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)),"^.*"": (.*)"))},"[""}{]","")))
我最终使用了一个文字数组,以便可以有效地从值中拆分字段名称,显然您可以按自己的意愿进行格式化,但请参见此处的图片演示它提取的字段:
还请注意,关注者,followed_by和media:count是您提到的字段(例如,帖子数称为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""")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句