나는 스크래퍼 페이지를 사용하고 하위 페이지를 찾고 해당 URL을 확장 기능의 함수에 전달하려는 Firefox 용 javascript 확장을 만들고 있습니다. 스크레이퍼는 Cheerio를 사용하여 만들어졌으며 로컬 컴퓨터에서 Node.js를 사용하여 스크레이퍼를 만들고 테스트했지만 확장 프로그램에서 구현하는 데 문제가 있습니다. 브라우저 내부에서 확장 기능을 실행하는 것이 가장 가능성이 높습니다. 요청 연결을 만들지 않습니다.자바 스크립트 확장에서 노드 js를 사용하여 웹 페이지 긁힘
스크래프 (scrape) 함수를 호출하면 오류가 발생하지 않고 대신 전혀 반환되지 않습니다 (콘솔 로그도 없으므로 실행되지 않습니다). 아무도 내가 어떤 기계의 확장 기능에서이 기능을 호출 할 수 있는지 알고 있습니까? 확장 등의 노드 js를 포함시키는 방법이 있습니까? 코드는 아래와 같습니다!
function scrape(item) {
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
console.log("connected");
// create cheerio
var $ = cheerio.load(html);
$('.inner-article a').each(function (i, elem) {
if ($(this).children().length == 1) {
availableItems.push($(this).attr('href'));
}
});
availableItems.forEach(function (i) {
request(url + i, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var title = $('#details').find('h1').text();
title = title.toLowerCase();
title = title.replace(/\s+/g, '');
var n = title.includes(item);
if (n) {
console.log('found');
itemurl = url + i + '';
return itemurl;
}
}
});
});
}
});
}
대단히 감사합니다.
나는'초기화 또는 선언 itemurl' 표시되지 않습니다. 또한 여기에 사용되는'item'과 같은 것이 없습니다 ->'title.includes (item)'. – EyoelD
사실'item'과'itemurl'을 가지고 있다면'href' 값은 어떻게 생겼을까요? 그것은 전체 URL 또는 그 일부만 포함하고 있습니까? 전체 URL을 가지고 있다면, 'url + i'대신'i'를 사용해야합니다. 나는 틀렸어. – EyoelD
실제로 var itemulr이어야하며, 거기서 초기화됩니다. 항목은 함수 매개 변수로 제공됩니다! href는/item 값이므로 URL에 추가하면 실제로 작동합니다. 고맙습니다! – Jeroen365