page.evaluate querySelectorAll에서 반환된 예기치 않은 빈 객체 배열
querySelectorAll과 함께 Puppeteer의 page.evaluate 기능을 활용할 때 사용자에게 다음과 같은 문제가 발생할 수 있습니다. 반환된 배열에 빈 개체가 포함되어 있습니다.
원인:
page.evaluate 함수에서 반환된 값은 JSON 직렬화 가능해야 합니다. 기본적으로 HTML 요소는 수정 없이는 JSON 직렬화가 가능하지 않습니다.
해결책:
이 문제를 해결하려면 HTML 요소에서 추출된 데이터를 JSON으로 수정해야 합니다. 직렬화 가능한 형식. 예를 들어 원하는 데이터가 요소의 href 값인 경우 다음 코드 조각을 사용할 수 있습니다.
await this.page.evaluate((sel) => { let elements = Array.from(document.querySelectorAll(sel)); let links = elements.map(element => { return element.href; }); return links; }, sel);
이 코드는 요소에서 href 값을 추출하여 문자열 배열로 반환합니다. 이는 JSON 직렬화가 가능합니다. 반환된 값을 수정하면 빈 개체 문제를 피할 수 있습니다.
위 내용은 `querySelectorAll`을 사용할 때 `page.evaluate`가 빈 개체를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!