0
실제로 CasperJs의 웹 사이트에서 데이터를 가져 오려고합니다. 데이터는 테이블에 저장됩니다. 스크랩 후 올바른 JSON 파일을 가져 오려고합니다. json과 함께 : - 회사 이름, - 메일, - 웹 사이트 - 활동에 대한 설명CasperJS는 JSON 출력을 위해 테이블을 통과하고 데이터를 긁습니다.
지금까지는 페이지를 열어 데이터를 가져올 수 있었지만 정확하지는 않았습니다 (메일과 웹 사이트는 동일합니다). 그래서 내가 원하는 각 요소를 정확하게 선택하는 방법을 찾았습니다. 하지만이 경우 나는 모든 테이블 정보를 얻지 못합니다. 첫 번째 행은 ...
누군가가 나를 도와 줄 수 있는지, 내 경우에 루프를 만드는 방법을 말해 주시겠습니까? 나는 전문적인 developper가 아니라고 가정하고, 나는 훈련 중이다. 여기
내 코드 : 여기
var casper = require('casper').create();
var url = 'http://www.rent2016.fr/pages/exposants';
var fs = require('fs');
var length;
casper.start(url);
casper.then(function() {
this.waitForSelector('table#myTable');
});
casper.then(function(){
var info = this.evaluate(function(){
var table_rows = document.querySelectorAll("tr"); //or better selector
return Array.prototype.map.call(table_rows, function(tr){
return {
nom : document.querySelector(".td-width h3").textContent,
description: document.querySelector(".td-width p").textContent,
mail : document.querySelector("td span a").textContent,
site : document.querySelector('td span a[href^="http"]').textContent,
};
});
});
fs.write('test_rent_stringify.json', JSON.stringify(info), 'w');
this.echo(JSON.stringify(info, undefined, 4));
});
casper.run(function() {
});
, 우리는 루프가없는 : JSON은 첫 번째 행 정보의를 반복합니다. 모든 행을 얻으려면 모든 정보를 얻을 수 ... 당신이
nom : tr.children[1].textContent,
에 의해
nom : document.querySelector(".td-width h3").textContent,
를 교체해야하지만,이 경우에 당신이 정확하게 H3, 링크를 타겟팅 할 수 없습니다 정보. 그래서 사실은 내가 할 수있는 : 행을 통해
루프와 정보를 얻을 수 있지만, 사용할 수 없게
는 첫 번째 행의 정보를 가지고 있지만 사전에 좋은 프리젠 테이션
감사합니다!
은 아마이 포스트는 도움이 -> http://stackoverflow.com/questions/41273739/how-do-scrape-table-from-the -provided-website-using-casperjs/41302965 # 41302965 당신은 원하는대로 결과를 Obejct/Array/File에 링크 된 솔루션으로 작성하면됩니다. – dasmelch
고마워요.하지만 이미이 게시물을 확인했습니다. 동일한 문제가 발생합니다. 원하는 데이터를 선택하기 위해 행 내부로 정확하게 갈 수 없습니다. 그러나 이것보다 더, 여기에 나는 모든 DATAS를 얻지 못하며, 회사의 제목과 설명 만 얻는다. 동일한
답변
모든 요소 내부에서 정보를 가져 오려면 document.querySelector 대신 tr.querySelector를 사용해야합니다.
다음 루프는 페이지가 잘 작동 :
출처
2017-02-03 20:39:19
코드를 작성해 주셔서 감사 드리며, 잘못된 길을 간략히 설명해 주셨습니다! 그게 내 문제를 해결했습니다! – ArnaudHMZ
관련 문제