설치pip install beautifulsoup4conda install beautifulsoup4 사용html 개체로부터 Soup 만들기from bs4 import BeautifulSoupsoup = BeautifulSoup(html_doc)print(soup.prettify()) # 객체의 내포된 데이터 구조를 보여줌 xml 개체로부터 Soup 만들기lxml이 설치되어 있어야 한다.설치는 위에서 BeautifulSoup를 설치하는 것처럼 라이브러리 이름만 변경하면 된다.from bs4 import BeautifulSoupsoup = BeautifulSoup(xml_doc, 'xml') 메서드find, find_allfind()는 해당 이름의 첫 번째 태그만 반환한다.find_all()은 해당 태그를..
ChromeOptions브라우저 창을 숨기는 설정브라우저를 GUI 없이 실행options = webdriver.ChromeOptions()options.add_argument("--headless")# options.add_argument("--headless=new") 사람처럼 보이게브라우저가 서버와 통신할 때 자신을 나타내기 위해 User-Agent를 보낸다.이를 통해 브라우저 유형과 운영 체제를 식별 가능하다.봇 탐지하는 것을 피하는 방법이다.options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537..
진행 단계3단계로 데이터를 저장할 수 있습니다.데이터 수집 : Selenium데이터 정제 및 모델링 : Beautiful Soup데이터 저장 : MySQL, Pandas데이터 수집Selenium을 사용하여 html 데이터를 가져오려고 합니다.예시에서는 네이버 증권을 접속하도록 하겠습니다. Selenium 패키지 사용from selenium import webdriverfrom selenium.webdriver.chrome.service import Service as ChromeServicefrom webdriver_manager.chrome import ChromeDriverManagerfrom selenium.webdriver.common.by import Byfrom selenium.webdrive..
최근 구글이 써드파티 쿠키를 제거하려다 결국 포기했다는 소식을 알았지만, 자세한 내용을 몰라 블로그에 기록합니다.써드파티 쿠키란?써드파티 쿠키(Third-party cookies)는 사용자가 방문한 웹사이트가 아닌 다른 도메인에서 설정한 쿠키를 말합니다. 예를 들어, 사용자가 A라는 웹사이트를 방문했을 때, 그 웹사이트에 포함된 광고나 다른 요소들이 B라는 다른 도메인에서 제공된다면, B 도메인에서 설정한 쿠키가 써드파티 쿠키입니다. 이 쿠키는 주로 광고주나 분석 회사들이 사용자의 인터넷 활동을 추적하고, 맞춤형 광고를 제공하거나 사용자 행동을 분석하는 데 사용됩니다. 써드파티 쿠키의 주요 기능 및 용도:사용자 추적여러 웹사이트에 걸쳐 사용자의 행동을 추적하여 사용자 프로필을 생성하고, 이를 통해 맞춤형..
Closure코드에서 전달하고 사용할 수 있는 독립된 기능 블록self-contained blocks of functionality이다. 다른 언어의 클로저, 익명 함수, 람다 및 블록과 유사하다.// 일반적인 표현식{ () -> in }// closure: ascendingOrder let ascendingOrder: (Int, Int) -> Bool = { (lhs, rhs) -> Bool in return lhs value capture클로저의 주변 context의 상수와 변수를 capture 할 수 있다. 더 이상 존재하지 않더라도 클로저 본문 내에서 값을 참조하고 수정할 수 있습니다.접근할 수 있는 상수와 변수들을 close over 한다.incrementer 클로저는 total과 i..
Secure SHell의 약자로 네트워크상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 프로토콜을 가리킵니다.SSH는 암호화 기법을 사용하기 때문에, 통신이 노출된다고 하더라도 이해할 수 없는 암호화된 문자로 보입니다.일반적인 역할원격 로그인: 원격 서버에 안전하게 접속하여 명령을 실행파일 전송: SCP나 SFTP을 사용하여 파일을 안전하게 전송포트 포워딩: SSH 터널을 통해 네트워크 서비스에 안전하게 접근자동화 및 스크립팅: SSH 키를 사용하여 비밀번호 없이 자동으로 스크립트를 실행하거나 작업을 자동화GitHub에 연결SSH 키를 사용하면 방문할 때마다 사용자 이름 및 personal access token을 제공하..
10년 간의 Swift 변천사2014년: Swift의 시작2015년: 오픈 소스로 전환, Linux에서도 사용 가능2016년: Swift 3, SPMSwift Package Manager 도입2017년: Swift 4, 최신 버전으로 마이그레이션하지 않아도 되는 기능이 추가2018년: Generics의 개선과 조건부 적합성Conditional Conformances 도입// 조건부 적합성extension Array: Comparable where Element: Comparable { static func , rhs: Array) -> Bool { // 비교 로직 }}2019년: SwiftUI, ABIApplication Binary Interface 도입2020년: Windows 포트가 s..
상태 관리 패키지라고 생각했지만, 문서에서는 Flutter/Dart를 위한 반응형 캐싱 프레임워크라 지칭하고 있습니다.선언적 프로그래밍과 반응형 프로그래밍을 사용하여 로직의 상당 부분을 처리할 수 있습니다. 최신 응용 프로그램에는 사용자 인터페이스를 렌더링하는 데 필요한 모든 정보가 거의 제공되지 않고 대신 데이터를 서버에서 비동기적으로 가져오는 경우가 많습니다. 비동기 코드를 사용하는 것은 어렵기도 하고 상태 변수를 생성하고 변경 시 UI를 갱신하는 것이 제한적이기에 Riverpod이 등장하게 되었습니다. 상태 관리를 용이하게 해주는 도구로 어플리케이션 내에서 여러 위젯이 동일한 상태에 접근해야 할 때 유용합니다.패키지 설치riverpod 패키지를 사용하기 위해서는 flutter_riverpod과 ri..