반응형
참조사이트
<a href="/accounts/login/?source=auth_switcher" tabindex="0">로그인</a>
<div class="Igw0E IwRSH eGOV_ _4EzTm">로그인</div>
puppeteer 사용중 A 태그나 DIV 등의 태그에서 자동 클릭 이벤트 발생시키기
아직까지는 제일 확실, 원본 소스에서 약간 수정
index.js
var clickTag = require('./clickTag.js');
clickTag.clickByText('<a href="/accounts/login/?">로그인</a>', '로그인', 'a');
clickTag.delay(1000);
clickTag.js
const escapeXpathString = (str) => {
const splitedQuotes = str.replace(/'/g, `', "'", '`);
return `concat('${splitedQuotes}', '')`;
};
// puppet 딜레이
exports.delay = function delay(time) {
return new Promise(function (resolve) {
setTimeout(resolve, time);
});
};
/*
page : page
text : 문자열
element : 태그
원래 소스 수정함, element 추가
*/
exports.clickByText = async (page, text, element) => {
const escapedText = escapeXpathString(text);
const linkHandlers = await page.$x(`//${element}[contains(text(), ${escapedText})]`);
if (linkHandlers.length > 0) {
await linkHandlers[0].click();
} else {
throw new Error(`Link not found: ${text}`);
}
};
반응형
'자바스크립트 > puppeteer, cheerio' 카테고리의 다른 글
* facebook 자동 로그인 + 좋아요 + 구독자 수 ( only puppeteer ) (0) | 2020.11.17 |
---|---|
* instagram 자동 로그인 + 좋아요 자동 클릭 (only puppeteer ) (0) | 2020.11.15 |
* imdb ( 영화 사이트 ) 스크래핑 (0) | 2020.11.13 |