gpt4 book ai didi

javascript - ajax 调用未在浏览器中显示任何内容

转载 作者:行者123 更新时间:2023-12-03 10:04:32 25 4
gpt4 key购买 nike

我正在尝试从此页面抓取艺术家网址

https://myspace.com/discover/artists?genreId=1002532

但是这个页面正在进行ajax调用来获取用户详细信息。我可以在firebug中看到这个url

https://myspace.com/ajax/artistspage?chartType=heavyrotation&genreId=1002532&page=0

如果我在单独的选项卡中打开此网址,则不会显示任何内容,但如果我在 firebug 中查看它的响应选项卡,则会显示所有详细信息。

如何获取所有内容?

最佳答案

如果你在 firebug 中查看 https://myspace.com/ajax/artistspage?chartType=heavyrotation&genreId=1002532&page=0 的请求当您尝试在浏览器中手动访问它时,您会注意到它收到 401 Unauthorized 响应。这是因为从myspace官方页面https://myspace.com/discover/artists?genreId=1002532请求时,请求头是以特殊方式设置的。这使得数据请求有效。当您的浏览器请求数据时,这些 header 不会出现。

这是有效的 header :

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Client:persistentId=53065c06-c877-47c5-933a-4b22d7f28cd9&screenWidth=1440&screenHeight=900&timeZoneOffsetHours=7&visitId=31c9d922-9984-4ac5-9bb0-0bb253bc89c3&windowWidth=1043&windowHeight=407
Connection:keep-alive
Cookie:persistent_id=pid%3D53065c06-c877-47c5-933a-4b22d7f28cd9%26llid%3D%26lprid%3D%26lltime%3D; beacons_enabled=true; __utmt=1; ads=adInitVisit%3D1432446031357; player=sequenceId%3D-1%26paused%3Dtrue%26currentTime%3D0%26volume%3D0.5%26mute%3Dfalse%26shuffled%3Dfalse%26repeat%3Doff%26mode%3Dqueue%26radioEntity%3D%26radioMediaType%3D%26radioMediaId%3D%26radioCurrentTime%3D0%26pinned%3Dfalse%26streamStartDateTime%3D%26radioStreamStartDateTime%3D%26at%3D360%26incognito%3Dfalse%26allowSkips%3Dtrue%26ccOn%3Dfalse; visit_id=31c9d922-9984-4ac5-9bb0-0bb253bc89c3; __utma=102911388.1051160901.1432446029.1432446029.1432446029.1; __utmb=102911388.2.10.1432446029; __utmc=102911388; __utmz=102911388.1432446029.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
DNT:1
Hash:NjI2YWM0YzM0YmJiZTg1NsKqwpMGw4HCuAvClMOGwoxAXMOXw50Qw5PCnH7DqVQIAygsY25wwrfCtsOcd8KuwqnCiMKSwobCrMKswpvDhEIrDcKYM0rCocKbJcKYEsKWw53Dr8KIwq7CgMKWw5XCo8KBGHVvURQKwpzDrMO9w5fDlsKzNhDChMOtw7wgw7NuDsK0wq1oC1sOOXAzK8KuwqdyEUDDnRk+w6BPwrIhfsKtw7Fewrcpa8Okw4c%3D
Host:myspace.com
Pragma:no-cache
Referer:https://myspace.com/discover/artists?genreId=1002532
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2409.0 Safari/537.36
X-Requested-With:XMLHttpRequest

以下是无效的:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie:persistent_id=pid%3D53065c06-c877-47c5-933a-4b22d7f28cd9%26llid%3D%26lprid%3D%26lltime%3D; beacons_enabled=true; __utmt=1; ads=adInitVisit%3D1432446031357; __utma=102911388.1051160901.1432446029.1432446029.1432446029.1; __utmb=102911388.2.10.1432446029; __utmc=102911388; __utmz=102911388.1432446029.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); player=sequenceId=-1&paused=true&currentTime=0&volume=0.5&mute=false&shuffled=false&repeat=off&mode=queue&radioCurrentTime=0&pinned=false&at=360&incognito=false&allowSkips=true&ccOn=false; visit_id=31c9d922-9984-4ac5-9bb0-0bb253bc89c3
DNT:1
Host:myspace.com
Pragma:no-cache
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2409.0 Safari/537.36

您会注意到存在一些差异,最重要的是有效请求 header 包含 Hash 以及 Referer header 。我假设至少必须存在哈希值才能由服务器验证。您必须找出这个哈希值是如何在 myspace 页面上生成的,并且可能还设置 Referer 标记来伪造来自正确页面的请求。

如果您深入研究页面上的 JS,您会发现此代码段位于 https://x.myspacecdn.com/new/common/js/global.7A07230F0926F7451E2F85D8F2C647D0.min.js

a.setRequestHeader("哈希",context.hashMashter)

这是使用 context.hashMashter 设置哈希 header 的位置,如果您转到 https://x.myspacecdn.com/new/common/js/authentication.68B094D880713CC3A9EB77F984FC09F4.min.js你可以看到是用这个片段设置的:

context.hashMashter=a.hashMashter

我还不知道 a 是什么,但如果你想继续探索,我认为这是一个好的开始。

关于javascript - ajax 调用未在浏览器中显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30420405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com