爬取Instagram数据的那些事(已解决)

写于2018-12-27

因为需要做一个Ins相关的app,需要爬取ins的数据,总共试验了一个多礼拜最后宣告失败。。。

2019-1-8已成功

2019-5-20日更新,目前在shareData里已经没有rhx_gis这个字段了,暂时的解决方式是传入一个空字符串,后续待观察,估计接口会大改。

特此记录一下

前言

某天领导说,咱们app默认只能获取用户前12张照片,我查了一下,因为默认爬取首页,里面的照片数据确实只有12条。我把原因balalal一说,领导立刻很机智的回答我:小宣,你是不是会node,你来弄一下吧。
好吧,我会node

开始观察

首先打开Instagram的首页,选上我喜欢的霉霉。F12,看network.
提示:需要科学上网

这里出现了2个请求,咱们主要看第二个,点开preview,没问题数据出来了,其中display_url就是咱们需要的啦

获取初始数据

我大概说一下如何获取用户资料以及前12张照片,方法很简单,直接get请求用户的首页,找到其中的shareData即可,这里几乎网上大部分人都能找到,给大家一个示例代码。这里可以直接用前端去get,也可以放在后端。 下述代码是在前端直接获取的

let username='taylorswift'   
let url='https://www.instagram.com/' + username + '/'    
axios.get(url)
.then(res=>{
  let dataStr = JSON.stringify(res)   
  let datarep = dataStr.replace(/(\r\n)|(\n)/g, "")    
  let n = datarep.match(/(window._sharedData\s?)(=\s?)(.*?);<\/script>/)[3]    
  let shareData = 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值