如何查找表单参数的存储位置,并在请求中使用它们

我正在尝试使用Request和Cheerio为https://www.freelance.nl/opdrachten/zoeken提供数据,但是我遇到了发布search条件的问题。

在使用该站点时,我无法看到searchstring和所选类别在发送过程中的位置,以及我如何在请求中使用它们来自动执行来自我的节点应用程序的search。

基本上我希望能够发送不同的search条件使用请求,然后我可以刮我返回的HTML数据,我需要的。

到目前为止,我有这样的:

request.post('https://www.freelance.nl/opdrachten/zoeken', { form: { key: 'value' } }, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) } } ); 

但是由于我无法看到表单数据在开发工具中的存储位置,我无法在“表单”对象中发送正确的值。 我很确定它是在请求有效负载,但我怎么从我的节点应用程序?

有没有更简单的方法来做到这一点? 我完全在浪费时间吗?

开发工具截图

我已经略微修改了你的代码:

 payload = {'projectFilterForm[keywords]':'javascript','projectFilterForm[category][]': '1'} request.post('https://www.freelance.nl/opdrachten/zoeken', { data:payload }, function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) } } 

);

打开你的眼睛;)在图像的底部,查看Request Payload

 projectFilterForm[keywords] projectFilterForm[category][] projectFilterForm[province][] 

更新

 var request = require('request'); var querystring = require('querystring'); require('request').debug = true; var data = querystring.stringify({ 'projectFilterForm[keywords]': 'java' }); var options = { followAllRedirects: true, uri: 'https://www.freelance.nl/opdrachten/zoeken', method: 'POST', headers: { 'Content-Length': Buffer.byteLength(data), 'cache-control': 'no-cache', 'Content-Type': 'multipart/form-data', 'origin': 'https://www.freelance.nl', 'referer': 'https://www.freelance.nl/opdrachten/zoeken', 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36' } }; var req = request(options, function (error, response, body) { console.log(body); }); req.write(data); req.end(); 

我试了一切=))没有…redirect后,我们得到默认页面。 也许他们使用一些会话基础保护?

这不是节点的问题。 我试图做到这一点,即使在铬的邮递员延伸没有运气。