我正在尝试从这个页面抓取艺术家的网址
https://myspace.com/discover/artists?genreId=1002532
但是这个页面正在进行ajax调用以获取用户deatils。我可以在firebug中看到这个url
https://myspace.com/ajax/artistspage?chartType=heavyrotation&genreId=1002532&page=0
如果我在单独的选项卡中打开这个url,没有显示任何内容,但是如果我在firebug的response选项卡中查看它,它会显示所有的deatil。你知道吗
我怎样才能得到所有的内容?你知道吗
如果您在firebug中查看请求https://myspace.com/ajax/artistspage?chartType=heavyrotation&genreId=1002532&page=0,当您尝试在浏览器中手动转到它时,您会注意到它得到了
401 Unauthorized
响应。这是因为当从官方myspace页面https://myspace.com/discover/artists?genreId=1002532请求时,请求头是以一种特殊的方式设置的,这使得对数据的请求有效。当浏览器请求数据时,这些标头不存在。你知道吗以下是有效的标题:
以下是无效的:
您将注意到有几个不同之处,最重要的是有效的请求头包括
Hash
和Referer
头。我假设至少哈希必须存在,以便服务器验证。您必须找出这个散列是如何在myspace页面上生成的,并且可能还需要设置Referer
标记来伪造来自正确页面的请求。你知道吗如果你深入研究页面上的JS,你会发现这个片段位于https://x.myspacecdn.com/new/common/js/global.7A07230F0926F7451E2F85D8F2C647D0.min.js
a.setRequestHeader("Hash",context.hashMashter)
这是哈希头设置的地方,使用上下文.hashMashter,如果您转到https://x.myspacecdn.com/new/common/js/authentication.68B094D880713CC3A9EB77F984FC09F4.min.js,您可以看到它是用以下代码段设置的:
context.hashMashter=a.hashMashter
我还不知道
a
是什么,但是如果你想继续探索,我认为这是一个好的开始。你知道吗相关问题 更多 >
编程相关推荐