본문 바로가기

Research/Python25

Python_WSGI? ASGI? 배경 2003년 이전 파이썬 진영에서는 수 많은 웹 어플리케이션 프레임워크가 존재했다. 이로 인해 새 유저가 프레임워크를 선택하는데 어려움을 겪는 문제들이 자주 발생했다. 이 상황에서 나온 것이 WSGI이다. CGI Common Gateway Interface는 서버 또는 다른 어플리케이션 언어들을 묶을 수 있는 공통의 표준 인터페이스다. 단점은 요청 시 어플리케이션을 새로 생성하기 때문에 비효율적이다. WSGI WSGI(Web Server Gateway Interface)는 요청 시 매번 실행되는 CGI의 단점을 보완하는 파이썬 진영에서 고안된 인터페이스다. CGI의 경우 요청 정보를 환경 변수 등으로 처리하지만, WSGI에서는 객체로 처리한다. 인증이나 쿠기 관리는 WSGI middleware로 처리.. 2023. 4. 10.
Chrome_웹사이트가 자바스크립트 기반인지 확인하는 방법 스크래핑 툴은 여러가지 있다. 그중 BeautifulSoup 대신 Selenium을 사용하는 이유는 무엇일까? 바로 Javascript 기반 웹사이트를 스크래핑 하기 위해서다. Bs는 불가하다. 그렇다면 어떻게 웹사이트가 Javascript 기반인지 아닌지 어떻게 알 수 있나? 이번 포스팅에서는 이에 대해 알아보자. 자바스크립트 기반 웹사이트 여부 확인 방법 크롬 브라우저 dev toold - settings - Debugger -> Disable Javascript ✅ On 체크해준다 자바스크립트 실행을 중지시키면.. 이런 에러 화면이 뜰 것이다. 자바스크립트로 동작하기 때문이다. 어떤 웹사이트는 이런 페이지가 뜨지 않고 그냥 데이터만 무한 로딩하는 경우도 있다. 데이터가 뜨지 않거나 이런 에러 페이지.. 2023. 3. 26.
XPath_Basics XPath이란? XPath은 Xml Path Language의 약자다. Selenium과 Scrapy를 사용할 경우 XPath이 큰 힘을 발휘한다. //tagName XPath에서는 슬래시 2개로 태그 이름을 선택할 수 있다. 예를 들어 //h1 으로 h1을 모두 선택할 수 있다. //tagName[1] 인덱스로 선택 가능 //tagName[@AttributeName="Value"] 특정 속성 값을 가진 태그 이름을 기반으로 선택 contains() starts-with() //tagName[contains(@AttributeName, "Value")] 특정 값을 포함하고나 시작하는 경우 조건 추가 and or //tagName[(expressions 1) and (expression 2)] ex1 그리.. 2023. 3. 26.
BeautifulSoup_여러 페이지 수집하기 from bs4 import BeautifulSoup import requests root = 'https://subslikescript.com' website = f'{root}/movies' result = requests.get(website) content = result.text soup = BeautifulSoup(content, 'lxml') box = soup.find('article', class_='main-article') links = [] for link in box.find_all('a', href=True): links.append(link['href']) print(links) for link in links: website = f'{root}/{link}' result = .. 2023. 3. 26.