我的网络抓取工作遇到了问题。
我似乎得到了与实际源代码不同的来源。
这是我的代码:
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和我项目的模块请求。
非常感谢帮助。
答案 0 :(得分:1)
由于有蒸汽登录,因此您无法获得与登录时相同的内容。
您可以使用API直接登录或在网站上查找登录表单并将相同类型的数据发送到服务器,方法与从站点网页登录时发送的方式相同。要弄清楚如何登录,当您从网站上的常规网页登录并查看它发送到服务器的内容(可能是表单帖子)时,您可能只需查看Chrome中的网络选项卡,然后您就可以模仿有请求的。
然后登录可能会返回一个您需要跟踪的cookie,然后发送其余的请求,这将为您提供登录用户将获得的内容。