从Instagram复制xpath(使用chrome)返回一个空列表

时间:2018-02-14 05:40:23

标签: xpath scrapy instagram

所以我会去一个Instagram帐户,比如说,https://www.instagram.com/foodie/复制它的xpath,它给我一些帖子,关注者数量和关注者数量。

然后我会在scrapy shell上运行命令this命令:

  

response.xpath( '// * [@ ID = “反应根”] /部分/主要/条/报头/部分/ UL')

获取该列表中的元素,但scrapy不断返回空列表。对我在这里做错了什么的想法?提前致谢!

1 个答案:

答案 0 :(得分:1)

此网站是单页应用程序(SPA),因此它的javascript在您的下载程序工作时呈现DOM尚未呈现。

当您使用view(response)时,您的下载程序收集的javascript可以继续由您的浏览器呈现,因此您可以看到呈现DOM的页面(但无法与Site API进行交互)。您可以通过response.text查看下载的内容并查看!

在这种情况下,您可以应用selenium + phantomjs为您的蜘蛛制作渲染页面!

另一个技巧:您可以使用正则表达式选择脚本的JSON部分,将其解析为JSON obj并从脚本中选择您的对应属性值(post,following,...)!