전체 글
-
[PostgreSQL] DataType - serialDB/PostgreSQL 2023. 1. 5. 21:43
serial : 컬럼 값이 자동으로 늘어나는 데이터타입 CREATE TABLE table_name( id SERIAL );실제 생성된 개체의 DDL은 다음과 같다 CREATE SEQUENCE table_name_id_seq; CREATE TABLE table_name ( id integer NOT NULL DEFAULT nextval('table_name_id_seq') ); ALTER SEQUENCE table_name_id_seq OWNED BY table_name.id;
-
[Docker] PostgreSQL docker 로 띄우기기타 2022. 12. 26. 21:37
docker run 도커 이미지 받기 alpine variants are also available to further reduce your image sizes and include basic packages (perfect for simpler projects) 버전을 명시하지 않으면 :latest 버전의 이미지를 찾는다 (없으면 설치) docker pull postgres:latest docker image ls 컨테이너(PostgreSQL 인스턴스) 실행 컨테이너 이름 및 환경변수를 지정하여 백그라운드로 실행 --name : 명시하지 않을경우 임의의 문자가 지정된다 docker run --name {name} -e POSTGRES_PASSWORD={pwd} -d postgres docker ps ..
-
[Python] seleniumBack/Python 2022. 12. 21. 22:17
Selenium 웹 브라우저 자동화 라이브러리, 브라우저 동작을 자동화하여 웹 페이지를 테스트하거나 스크래핑 할 수 있다 다양한 언어를 지원한다 (Java, C #, Python, Ruby, JavaScript, PHP) 다양한 브라우저에서 작동할 수 있다 (Firefox, Chrome, IE, Edge) 브라우저 별 WebDriver 와 통신하여 브라우저를 제어해 비교적 느리다 Selenium 와 유사한 라이브러리 puppeteer - 구글에서 만든 웹 브라우저(Chromium) 자동화 도구 - 브라우저에서 코드를 직접 수행하여 빠르다 - Node.js 만 지원한다 playwright - MS에서 만든 웹 브라우저 자동화 도구 - 멀티 프로세스 아키텍쳐로 구현되어 병렬작업이 가능하다 - 비동기 API를..
-
[Python] requestsBack/Python 2022. 12. 20. 22:18
requests HTTP Client 라이브러리, http 요청을 보내고 응답을 처리할 수 있다 urllib3 기반으로 만들어졌다 HTTP/1.0 만 지원한다 동기적인 요청만 처리 가능하다 requests 와 유사한 라이브러리 urllib3 - 파이썬에 내장된 HTTP client 라이브러리 - HTTP/1.0 , HTTP/2.0을 지원한다 - 복잡하고 덜 직관적인 API를 제공한다 aiohttp - asyncio 을 사용해 비동기적으로 HTTP 요청을 처리하는 라이브러리 - (asyncio : 비동기식 I/O 및 이벤트 루프를 지원하는 라이브러리) selenium 브라우저를 제어하여 웹 페이지를 테스트/스크래핑 할 수 있는 라이브러리 # cli> pip install requests import req..
-
[기타] Headless browser기타 2022. 12. 19. 21:57
Headless browser GUI가 없는 웹 브라우저 DOM 생성, (선택) Style rendering 후 종료 (Screen Painting 안함) CLI로 동작한다 HTTP Client 보다 느리고 UI 기반 Browser 보다 빠르다 HTTP Client는 JS 실행하지 않아 데이터가 적은 대신 빠르다. HTTP Client와 달리 마우스, 키보드 액션을 할 수 있어 동적 HTML 크롤링이 가능하다. Rendering, Painting을 스킵해 GUI보다 빠르다. 스크래핑을 막기위해 Headless Browser 를 감지해 차단함 detect Request frequency updated blacklist of IPs CAPTCHAs detect User Agent
-
[NodeJs] playwright exampleBack/NodeJS 2022. 12. 17. 19:55
* playwright : headless 브라우저를 지원하는 라이브러리 - chromium 을 통하여 http://httpbin.org/anything 접속한다. const playwright = require("playwright"); (async () => { const browser = await playwright.chromium.launch(); const context = await browser.newContext(); const page = await context.newPage(); await page.goto('http://httpbin.org/anything'); console.log(await page.locator('pre').textContent()); await browser..
-
[NodeJS] cheerio debugBack/NodeJS 2022. 12. 15. 22:49
const cheerio = require("cheerio"); const $ = cheerio.load(pageHTML.data); function initialize(selector, context, root, opts) { html = function html(dom, options) { xml = function xml(dom) { text = function text(elements) { parseHTML = function parseHTML(data, context, keepScripts) { root = function root() { contains = function contains(container, contained) { merge = function merge(arr1, arr2) ..
-
[NodeJs] axios responseBack/NodeJS 2022. 12. 15. 22:32
- axios 를 사용하여 HTTP 요청하기 - axios : promise-based JavaScript HTTP client. const axios = require("axios"); const pageHTML = await axios.get("https://scrapeme.live/shop"); { "status": 200, "statusText": "OK", "headers": { "date": "Thu, 15 Dec 2022 13:19:12 GMT", "server": "Apache/2.4.41 (Ubuntu)", "expires": "Thu, 19 Nov 1981 08:52:00 GMT", "cache-control": "no-store, no-cache, must-revalidate", "..