从 http get 获取不同的源代码和实际的源代码
Getting different source codes from http get and actual source code
我的项目需要进行网络抓取时遇到问题。
我得到的源代码似乎与实际源代码不同。
这是我的代码:
var request = require("request");
request({
url: "http://csgolounge.com/trade?t=96580981",
}, function(error, response, body) {
console.log(body);
});
它只是缺少一些部分。
例如:
<div id="offer">
<textarea placeholder="Add your message here... Reminder: only English in trade offers!" id="notes" class="message" name="message"></textarea>
<form id="replyTo" style="display: none; min-height: 30px;"></form>
<form class="left" style="display: none;width: 98%;margin: 8px 1%;"><input type="hidden" name="tslt" value="31369f8ed9ec5f92915aa1ae899b484c"></form>
<a class="button" onclick="postReplay('98057741');$(this).hide();">Post reply</a>
<a class="button" onclick="showBackpack();$(this).remove()">Add items to offer</a>
<a class="buttonright" href="https://steamcommunity.com/tradeoffer/new/?partner=104198881&token=BpXaAtwA" target="_blank">Steam offer</a>
<img src="http://cdn.dota2lounge.com/img/load.gif" id="loading" style="display: none; margin: 0.75em 2%" />
</div>
这整个部分都不见了。
我正在使用 node.js 和我项目的模块请求。
非常感谢您的帮助。
由于有 steam 登录,您将不会获得与登录时相同的内容。
您可以通过使用 API 直接登录或在站点上找到登录表单并将相同类型的数据发送到服务器,就像您从站点网页。要弄清楚如何登录,当您从站点上的常规网页登录时,您可能只需查看 Chrome 中的网络选项卡,然后查看它发送到服务器的内容(可能是一个表单 post) 然后你可以通过请求来模仿它。
然后登录可能会 return 一个您需要跟踪的 cookie,然后与您的其余请求一起发送,这将为您提供登录用户将获得的内容。
我的项目需要进行网络抓取时遇到问题。
我得到的源代码似乎与实际源代码不同。
这是我的代码:
var request = require("request");
request({
url: "http://csgolounge.com/trade?t=96580981",
}, function(error, response, body) {
console.log(body);
});
它只是缺少一些部分。 例如:
<div id="offer">
<textarea placeholder="Add your message here... Reminder: only English in trade offers!" id="notes" class="message" name="message"></textarea>
<form id="replyTo" style="display: none; min-height: 30px;"></form>
<form class="left" style="display: none;width: 98%;margin: 8px 1%;"><input type="hidden" name="tslt" value="31369f8ed9ec5f92915aa1ae899b484c"></form>
<a class="button" onclick="postReplay('98057741');$(this).hide();">Post reply</a>
<a class="button" onclick="showBackpack();$(this).remove()">Add items to offer</a>
<a class="buttonright" href="https://steamcommunity.com/tradeoffer/new/?partner=104198881&token=BpXaAtwA" target="_blank">Steam offer</a>
<img src="http://cdn.dota2lounge.com/img/load.gif" id="loading" style="display: none; margin: 0.75em 2%" />
</div>
这整个部分都不见了。
我正在使用 node.js 和我项目的模块请求。
非常感谢您的帮助。
由于有 steam 登录,您将不会获得与登录时相同的内容。
您可以通过使用 API 直接登录或在站点上找到登录表单并将相同类型的数据发送到服务器,就像您从站点网页。要弄清楚如何登录,当您从站点上的常规网页登录时,您可能只需查看 Chrome 中的网络选项卡,然后查看它发送到服务器的内容(可能是一个表单 post) 然后你可以通过请求来模仿它。
然后登录可能会 return 一个您需要跟踪的 cookie,然后与您的其余请求一起发送,这将为您提供登录用户将获得的内容。