나는 casperjs를 사용하여 Facebook의 메인 페이지를 긁어 모으려고합니다. casperjs에서 Google을 긁어 모으기 위해 예제 코드를 수정했습니다. class = fbxWelcomeBoxName을 사용하여 요소를 식별하고 링크를 검색합니다.Casperjs를 사용하여 Facebook을 긁을 때 아무 것도 얻지 마.
이 예제는 Google.com에서 잘 작동하지만 Facebook에서 스크랩하는 경우 작동하지 않는 것으로 보입니다. 나는 페이스 북이 고객 청중에 대해 근근이 살아가는 것을 금지하는 것에 대해 들었다. 그러나 내 근근이 살아가는 것은 그 일과 관련이 없습니다. 내가 놓친 게 있니? 미리 감사드립니다!
var links = [];
var casper = require('casper').create();
function getLinks() {
var links = document.querySelectorAll('.fbxWelcomeBoxName');
return Array.prototype.map.call(links, function(e) {
return e.getAttribute("href");
});
}
casper.userAgent('Mozilla/5.0 (Windows NT 6.0) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1');
casper.start('https://www.facebook.com', function() {
// search for 'casperjs' from facebook form
this.fill('form#login_form', {
email: '***your email***',
pass: '***your password***'
}, true);
});
casper.then(function() {
// aggregate results
links = this.evaluate(getLinks);
});
casper.run(function() {
// echo results in some pretty fashion
this.echo(links.length + ' links found:');
this.echo(' - ' + links.join('\n - ')).exit();
});
결과 :
[email protected]:~/tests/casperjs$ casperjs --verbose --log-level=debug --ssl-protocol=any test11.js
[info] [phantom] Starting...
[info] [phantom] Running suite: 3 steps
[debug] [phantom] opening url: https://www.facebook.com/, HTTP GET
[debug] [phantom] Navigation requested: url=https://www.facebook.com/, type=Other, willNavigate=true, isMainFrame=true
[debug] [phantom] url changed to "https://www.facebook.com/"
[debug] [phantom] Successfully injected Casper client-side utilities
[info] [phantom] Step anonymous 2/3 https://www.facebook.com/ (HTTP 200)
[info] [remote] attempting to fetch form element from selector: 'form#login_form'
[debug] [remote] Set "email" field value to [email protected]
[debug] [remote] Set "pass" field value to ********
[info] [remote] submitting form to https://www.facebook.com/login.php?login_attempt=1, HTTP POST
[info] [phantom] Step anonymous 2/3: done in 447ms.
[debug] [phantom] Navigation requested: url=https://www.facebook.com/login.php?login_attempt=1, type=FormSubmitted, willNavigate=true, isMainFrame=true
[debug] [phantom] Navigation requested: url=https://www.facebook.com/, type=FormSubmitted, willNavigate=true, isMainFrame=true
[debug] [phantom] url changed to "https://www.facebook.com/"
[debug] [phantom] Successfully injected Casper client-side utilities
[info] [phantom] Step anonymous 3/3 https://www.facebook.com/ (HTTP 200)
[info] [phantom] Step anonymous 3/3: done in 2265ms.
[info] [phantom] Done 3 steps in 2284ms
0 links found:
-
답장을 보내 주셔서 감사합니다. 나는 당신의 세 가지 의견을 모두 시도했다. 그러나 요소를 검색 할 수없는 것 같습니다. [오류] [팬텀] 10000ms의 대기 제한 시간이 만료되었습니다. 대기 시간 제한 10000ms가 만료되었습니다. 페이스 북에서 팬텀이 긁어 모으지 않습니까? HTTP 요청에서 브라우저 정보를 'phantomjs'로 탐지하면 요청을 차단합니다. –