Javascript 刮削:浏览器中的会话ID可以工作,但刮削中的会话ID不能';T

Javascript 刮削:浏览器中的会话ID可以工作,但刮削中的会话ID不能';T,javascript,php,node.js,screen-scraping,session-cookies,Javascript,Php,Node.js,Screen Scraping,Session Cookies,注意:出于明显的原因,我已将会话ID的最后5个字符替换为“x” 我正在浏览一个网站。我可以在浏览器中看到,登录设置了一个名为PHPSESSID的cookie值。没问题,我能勉强做到: superagent .post(loginUrl) .send(loginDetails) .end(function(err, res){ var setCookieValue = res.headers['set-cookie'][0] var sess

注意:出于明显的原因,我已将会话ID的最后5个字符替换为“x”

我正在浏览一个网站。我可以在浏览器中看到,登录设置了一个名为
PHPSESSID
的cookie值。没问题,我能勉强做到:

superagent
    .post(loginUrl)
    .send(loginDetails)
    .end(function(err, res){
        var setCookieValue = res.headers['set-cookie'][0]
        var sessionID = cookieParser.parse(setCookieValue).PHPSESSID
        console.log(sessionID)
返回:

37c3bog3tf6erp2i6ss5vxxxxx
看起来像是一个PHP会话ID。太好了!现在使用会话ID:

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID'=sessionID)
.end(err, res)
将我重定向到登录页面。但是我从浏览器中手动获取的会话ID格式完全相同,工作正常

var fakeSessionID = 'a1oslk341uoht8p6009q5xxxxx'
superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID='+fakeSessionID)
将返回loggedInURL,以及登录用户的完整HTML

为什么我正在刮取的会话ID不起作用?

  • 格式相同
  • 字符数相同(26个字符)
在工作代码和非工作代码之间,会话ID没有任何不同之处


有什么不同呢?

您可以尝试在调用superagent的GET和POST时在标头中抛出不同的user agent属性:

  .set('User-Agent','Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0')

您可以尝试在调用superagent的GET和POST的标头中抛出不同的user agent属性:

  .set('User-Agent','Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0')

您可以尝试在调用superagent的GET和POST的标头中抛出不同的user agent属性:

  .set('User-Agent','Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0')

您可以尝试在调用superagent的GET和POST的标头中抛出不同的user agent属性:

  .set('User-Agent','Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0')

您的代码看起来好像没有用实际的sessionID值替换字符串“sessionID”

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID=sessionID')
.end(err, res)
应该是什么样子

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID='+sessionID)
.end(err, res)

我认为…

您的代码看起来并没有用实际的sessionID值替换字符串“sessionID”

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID=sessionID')
.end(err, res)
应该是什么样子

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID='+sessionID)
.end(err, res)

我认为…

您的代码看起来并没有用实际的sessionID值替换字符串“sessionID”

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID=sessionID')
.end(err, res)
应该是什么样子

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID='+sessionID)
.end(err, res)

我认为…

您的代码看起来并没有用实际的sessionID值替换字符串“sessionID”

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID=sessionID')
.end(err, res)
应该是什么样子

superagent
.get(loggedInURL)
.set('Cookie', 'PHPSESSID='+sessionID)
.end(err, res)
我认为…

PHP有一些类似的功能

有些网站可能会额外增加。PHP有一些功能,如

有些网站可能会额外增加。PHP有一些功能,如

有些网站可能会额外增加。PHP有一些功能,如



一些网站可能会另外添加。

非常好的建议但没有变化。您可以尝试阅读此帖子:非常好的建议但没有变化。您可以尝试阅读此帖子:非常好的建议但没有变化。您可以尝试阅读此帖子:非常好的建议但没有变化。您可以尝试阅读此帖子:您是对的,但这是在为StackOverflow生成测试用例时出错的。我的真实代码在正确的地方有引用。感谢您指出这一点。您是对的,但这是在为StackOverflow制作测试用例时出错的。我的真实代码在正确的地方有引用。感谢您指出这一点。您是对的,但这是在为StackOverflow制作测试用例时出错的。我的真实代码在正确的地方有引用。感谢您指出这一点。您是对的,但这是在为StackOverflow制作测试用例时出错的。我的真实代码在正确的地方有引用。感谢您指出这一点。刮取的cookie是否包含控制字符,例如末尾的新行?刮取的cookie是否包含控制字符,例如末尾的新行?刮取的cookie是否包含控制字符,例如末尾的新行?刮取的cookie是否包含控制字符,例如,末尾的新行?我已切换到使用superagent的持久选项,例如,
var agent=superagent.agent()
。这为我处理了推荐人、cookies和其他与持久性相关的事务。因为上面的答案与这个解决方案最接近,所以我将它标记为正确的,并给你这个表情符号:我已经切换到使用superagent的持久选项,例如,
var agent=superagent.agent()
。这为我处理了推荐人、cookies和其他与持久性相关的事务。因为上面的答案与这个解决方案最接近,所以我将它标记为正确的,并给你这个表情符号:我已经切换到使用superagent的持久选项,例如,
var agent=superagent.agent()
。这为我处理了推荐人、cookies和其他与持久性相关的事务。因为上面的答案与这个解决方案最接近,所以我将它标记为正确的,并给你这个表情符号:我已经切换到使用superagent的持久选项,例如,
var agent=superagent.agent()
。这为我处理了推荐人、cookies和其他与持久性相关的事务。因为上面的答案是最接近这个解决方案的,所以我将它标记为正确的,并给你这个表情符号: