본문 바로가기

오늘 배운것들3

셀레니움 크롬 프로필 쓰는 방법/ 유튜브 네이버 로그인 없이 자동화 하는법 셀레니움으로 크롤링 작업을 하다보면 네이버, 다음이나 유튜브등 로그인이 필요할때가 가끔 있습니다. 근데 로그인하는걸 코드에 집어넣는건 실행할때마다 로그인해야해서 오래걸리고, 로그인하는것도 어렵다는 단점이 있어요. 이럴때 쓸수있는 방법이 크롬 프로필을 사용하는것 입니다. 셀레니움을 아무 옵션없이 실행하면 매 실행시마다 --user-data-dir 경로가 바뀌기 때문에 방문 기록이나 쿠키같은 기록이 매번 저장되지않고 초기화 되지만, 코드에서 실행할때 user-data-dir을 한곳으로 지정해주면 실행시마다 그곳에 기록과 쿠키를 저장하고 참조하기 때문에 매번 새로 로그인할 필요가 없습니다. 또한 셀레니움으로 로그인하는게 어려운 사이트들은 셀레니움이 참조하는 user-data-dir 폴더를 직접 크롬으로 연 다.. 2022. 8. 2.
ERD 기호 설명 학생은 한반에 무조건 들어가있어야하고, 1개의 반만 가질수있습니다. 반은 학생이 있을수도, 없을수도 있으며 여러명의 학생이 소속될수있습니다. 이때의 관계를 erd로 표현하면 다음과 같이 표현할수 있습니다. 위의 학생과 반의 규칙을 다이어그램으로 표현하려고합니다. 아래와같이 erd 논리모델로 설명할수있습니다. 이 사진에서 학생 => 반 방향으로 관계를 읽을때 첫번째로 한개의 세로 실선을 볼수있는데 이건 학생 집합 안에있는 데이터(학생)들은 각각 반드시 반 집합안에 있는 데이터(반)에 소속된다고 볼수있습니다. 소속되는건 학생의 외래키가 반의 기본키를 가르키는식으로 구현할수있겠죠? 첫번째 실선 그 다음으로 보이는 두번째 세로실선은 숫자 1이라고 해도 됩니다. 학생은 오직 하나의 반만 가르킨다는 뜻입니다. 이 .. 2020. 4. 12.
npm모듈 multer 오늘은 npm 모듈중 하나인 multer를 사용해봤습니다. 간단하게 경로만 입력해 파일을 저장할수도있고 경로뿐만이 아니라 저장될 이름같은것들을 diskStorage 객체를 이용해서 설정해줄수있었습니다. 오늘 간단하게 만들어본 예제는 이런 코드였습니다. app.js const express=require('express') const app=express() const multer=require('multer') const path=require('path') let diskStorage=multer.diskStorage({ destination:function(req,file,cb){ cb(null,'uploads/') }, filename:function(req,file,cb){ let filename.. 2020. 4. 2.