파이썬과 루비에서이 작업을 수행 할 수 있습니다.하지만 Node.js를 사용하고 싶었고 지금까지 전체 스크래핑 프로세스가 혼란 스럽습니다. 데이터를 스크랩하기 위해 사이트에 로그인하기위한 게시물 요청에 문제가 있습니다. 여기 코드는 다음과 같습니다Node.js 웹 스크랩 인증
var request = require('request');
var cheerio = require('cheerio');
var credentials = {
username: 'kevin',
password: 'secret'
};
request.post({
uri: 'http://yourwebsite.com/login',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
body: require('querystring').stringify(credentials)
}, function(err, res, body){
if(err) {
callback.call(null, new Error('Login failed'));
return;
}
});
그래서 로그인 후 나는 필드 ID로 자격 증명으로 사용자 이름과 암호를 대체하는 건가요 내가 긁어하고 싶은 말은.? 또는 필드 이름입니까? 또한, 양식에서 제출 (단추)을 누르는 부분은 어디에 있습니까? 편집
: 그래서 로그인 후 내가 긁어하고 싶은 말은
var cheerio = require('cheerio');
var request = require('request');
var credentials = {
acct: '....',
pw: '.....'
};
request.post({
uri: 'https://news.ycombinator.com/login?whence=news',
headers: { 'content-type': 'application/x-www-form-urlencoded' },
body: require('querystring').stringify(credentials)
}, function(err, res, body){
request('https://news.ycombinator.com', function(err, res, body) {
if(err) {
callback.call(null, new Error('Request failed'));
return;
}
var $ = cheerio.load(body);
var text = $('.pagetop').text();
console.log(text);
});
});
[_Charles Proxy_] (http://www.charlesproxy.com/)와 같은 것을 설치하십시오. 웹 브라우저에서 직접 요청하십시오. 무엇이 서버로 보내지는지보십시오. 그럼'node.js' 코드에서 보내야 할 것이 무엇인지에 대한 좋은 아이디어를 얻을 수있을 것입니다. –
감사합니다. – user1452530