| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ASMR
- 오늘의역사
- 명상명언
- Android
- 공부집중
- Gemini
- 명언모음
- javascript
- 명심보감
- Linux
- 이모지메모
- gemini-cli
- FSM
- Firebase
- 소울칼리버6
- Flutter
- androidx
- DART
- 좋은글필사하기
- 코틀린
- Coroutine
- 장자명언
- kotlin
- jetpack compose
- 오픈소스
- 생성AI
- ChatGPT
- 명언
- Freesound
- 파이썬
Archives
- Today
- Total
Vintage appMaker의 Tech Blog
[gemini-cli] 주식분석 - node.js와 연동하여 웹스크래핑 본문
Webscaping(selector 지정) 활용 - 주식분석
puppeteer를 활용하여 HTML 내의 주식정보를 가져와 분석
1. 지침(note.md)
# gemini-cli를 이용한 웹스크래핑
> puppeteer를 이용하여 웹화면을 캡쳐한 후, 분석한다.
## 목적
1. 입력된 웹화면을 PC로 가져온다.
2. 가져온 화면을 gemini-cli가 분석한다.
3. 결과(이미지와 분석내용)를 html로 저장한다.
## 구조
gemini-cli:
- 프롬프트 처리
- 내장된 node.js 기능을 "코드 인터프리터"로 활용
prompt:
- 프롬프트에서 "주소"를 입력받는다.
- 프롬프트에서 "select"를 입력받는다.
- 기능에서 주소와 selector를 대입한다.
- puppeteer의 기능을 활용해 이미지를 가져온다.
- 이미지를 "요구"의 내용으로 분석한다.
## 기능
코드인터프리터 기능으로 puppeteer를 다음과 정의하여 사용한다.
```javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 주소를 url에 대입한다.
const url = 'https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&ssc=tab.nx.all&query=%EB%91%90%EC%82%B0&oquery=KOSPI&tqi=jKWgpdqps8wssMfLuHCsssssto4-044378&ackey=a4mrg81y';
// selector를 selector에 대입한다.
const selector = '#main_pack > section.sc_new.cs_stock.cs_stock_same._cs_stock > div';
try {
await page.goto(url, { waitUntil: 'networkidle2' });
const element = await page.waitForSelector(selector);
if (element) {
await element.screenshot({ path: 'element.png' });
console.log('Screenshot saved as element.png');
} else {
console.log(`Selector "${selector}" not found on page.`);
}
} catch (error) {
console.error('Error during scraping:', error);
} finally {
await browser.close();
}
})();
```
## 할 일
1. 프롬프트를 입력받는다.
2. 입력받는 내용에서 "주소", "selector"를 분석하여 기능의 변수에 대입한다.
3. node.js로 기능을 수행한다.
4. 생성된 이미지를 기준으로 프롬프트의 "요구사항"에 해당하는 내용으로 분석한다.
5. 분석내용을 report.html(캡쳐이미지 포함)로 저장한다.
2. 프롬프트
gemini -p "note.md를 지침으로 활용한다. 주소는 https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&ssc=tab.nx.all&query=%EB%91%90%EC%82%B0&oquery=KOSPI&tqi=jKWgpdqps8wssMfLuHCsssssto4-044378&ackey=a4mrg81y이다. selector는 #main_pack > section.sc_new.cs_stock.cs_stock_same._cs_stock > div이다. 요구사항은 주식분석가 입장에서 내용을 분석한다." -y

3. 결과(repoort.html)
- report.html

4. 참고
selector는 chrome의 개발자 도구를 통해 가져온다.
- chrome 브라우저를 통해 해당 주소로 이동한다. 그리고 우클릭 후, 검사를 누른다.


- 검사화면에서 상단 최좌측의 아이콘을 누른 후, HTML 내의 원하는 요소로 이동한다. 이동시마다 하이라이팅 된다. 원하는 요소가 선택 시 클릭한다.


- 개발자 화면에서 선택된 요소로 이동하여 우클릭 후, copy -> Copy Selector를 선택한다.


이 정보와 웹주소를 가지고 puppeteer를 활용하여 주식차트를 gemini-cli에게 분석요청할 수 있다.
생성 AI는 랜덤AI이다. 언제나 할루시네이션과 오류가 있음을 잊어서는 안된다.- 오류없는
완벽한 자동화를 원한다면"프로그래밍"을 해야 한다.
'Source code or Tip > 생성AI' 카테고리의 다른 글
| [gemini-cli] 프롬프트로 excel을 data로 지정하기 (0) | 2025.10.02 |
|---|---|
| [ChatGPT] Connector로 간단히 Notion 연동 (0) | 2025.09.27 |
| [gemini-cli] pipe(wmic)를 이용한 하드웨어 정보처리 (0) | 2025.09.06 |
| [gemini-cli] 지침파일을 이용한 이미지 분석 (1) | 2025.08.30 |
| [QuickStart] gemini-cli를 이용한 자동화 (0) | 2025.08.21 |
Comments
