Python에서 JSON과 Dictionary 간 변환하는 방법
·
파이썬/Basic
JSON은 키-값 쌍으로 이루어진 데이터를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷입니다. Python에서 JSON 데이터를 사용하기 위해서는 Dictionary로 변환해야 합니다. 반대로, Dictionary를 JSON으로 변환하여 다른 프로그램이나 API와 데이터를 주고받을 수 있습니다. JSON을 Dictionary로 변환하기 Python의 json 라이브러리를 사용하여 JSON 문자열을 Dictionary로 변환할 수 있습니다. json.loads() 함수를 사용하면 JSON 문자열을 파싱하여 Dictionary 객체를 반환합니다. import json json_data = '{ "p1": { "name": "chulsu", "age": 20 }, "p2": { "n..
데이터프레임의 인덱싱 : at, iloc, loc
·
파이썬/Pandas
데이터프레임에서 데이터를 접근하는 방법에는 여러 가지가 있지만, 가장 중요한 세 가지 메서드는 at, iloc, loc입니다. 이 세 가지 메서드는 각기 다른 방식으로 데이터에 접근하므로, 상황에 맞는 메서드를 사용하는 것이 중요합니다. 1. at 메서드 at 메서드는 레이블(label)을 사용하여 데이터프레임의 특정 위치에 있는 값을 선택합니다. 레이블은 행 인덱스와 열 이름으로 구성됩니다. 장점: 직관적이고 명확한 코드 작성 가능 행 이름이나 열 이름을 사용하여 데이터 접근 가능 단점: 레이블이 유일해야 함 레이블이 존재하지 않으면 KeyError 발생 import pandas as pd df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # 'A' 열의 두 ..
Requests : HTTP 요청 최적화
·
파이썬/크롤링
Python의 requests 모듈은 HTTP 요청을 보내고 응답을 처리하는 데 사용되는 강력하면서도 간편한 도구입니다. 그러나 대규모 또는 빈번한 요청을 다루는 경우, 코드의 효율성을 고려하여 최적화할 필요가 있습니다. 이 블로그 글에서는 requests 모듈을 사용하여 HTTP 요청을 최적화하는 다양한 방법을 살펴보겠습니다. 1. 세션 유지 requests의 Session 객체를 사용하면 연속적인 요청 간에 상태를 유지할 수 있습니다. 이를 통해 동일한 서버에 여러 요청을 보낼 때 발생하는 연결 설정 오버헤드를 줄일 수 있습니다. import requests session = requests.Session() # 여러 요청에서 동일한 세션 사용 response1 = session.get('https:..
requests : 간편한 HTTP 요청
·
파이썬/Basic
파이썬에서 웹 데이터를 가져오거나 웹 API를 사용할 때, requests 모듈은 필수적인 도구입니다. requests 모듈은 간결하고 우아한 API를 제공하여 다양한 HTTP 요청을 쉽게 수행할 수 있게 해줍니다. requests 모듈의 장점간결한 API: requests 모듈은 복잡한 코드를 작성하지 않고도 다양한 HTTP 요청을 수행할 수 있습니다.다양한 기능: GET, POST, PUT, DELETE 등 다양한 HTTP 메서드를 지원하며, 인증, 쿠키, 헤더 등 다양한 기능을 제공합니다.자동 JSON 파싱: JSON 응답을 자동으로 파싱하여 사용하기 쉽게 해줍니다.오류 처리: HTTP 오류를 처리하는 데 도움이 되는 기능을 제공합니다.requests 모듈 사용 방법requests 모듈을 사용하기 ..
크롤링이 가능한 사이트인지 확인하는 방법
·
파이썬/크롤링
웹 사이트를 크롤링하기 전에 해당 사이트에서 크롤링을 허용하는지 확인하는 것이 중요합니다. 웹 사이트에서 크롤링을 허용하지 않는 경우, 크롤링을 시도하면 차단되거나 페이지가 제대로 표시되지 않을 수 있습니다. 웹 사이트에서 크롤링을 허용하는지 확인하는 방법은 다음과 같습니다. robots.txt 파일 확인 웹 사이트의 robots.txt 파일을 확인하면 크롤러가 어떤 페이지를 크롤링할 수 있는지 확인할 수 있습니다. robots.txt 파일은 웹 사이트의 최상위 디렉터리에 위치하며, 다음과 같은 형식으로 작성됩니다. User-agent: * Disallow: / Allow: /index.html 위의 예시에서 User-agent: *는 모든 크롤러에 해당하는 것을 의미합니다. Disallow: /는 모든..
크롤링을 할 때 셀레니움이 필요한지 확인하는 방법
·
파이썬/크롤링
크롤링을 할 때 셀레니움이 필요한지 확인하는 방법은 크게 두 가지가 있습니다. 자바스크립트 사용 중지 웹 브라우저의 개발자 도구에서 자바스크립트를 사용 중지하고 페이지를 확인하는 방법입니다. 자바스크립트가 사용 중지되면 웹 페이지의 동적인 요소가 모두 숨겨지고, 정적 요소만 표시됩니다. 따라서, 페이지의 내용을 정적 요소만으로 추출할 수 있다면 셀레니움이 필요하지 않습니다. 개발자 도구에서 자바스크립트 사용 중지 방법 크롬 브라우저의 경우 다음과 같은 방법으로 개발자 도구에서 자바스크립트 사용을 중지할 수 있습니다. 크롬 브라우저에서 페이지를 열고, F12 키를 누릅니다. 개발자 도구가 열리면,  환경설정을 선택합니다. 디버거 항목의 자바스크립트 사용 중지(Disable JavaScript) 체크박스를..
크롤링 요소 검색 비교 : Selenium vs BeautifulSoup
·
파이썬
Selenium과 BeautifulSoup은 모두 웹 페이지를 자동화하는 데 사용되는 프레임워크입니다. 두 프레임워크 모두 웹 페이지에서 요소를 찾을 수 있는 find 함수를 제공합니다. 이 글에서는 Selenium과 BeautifulSoup에서 find 함수의 성능을 비교해 보겠습니다. 테스트 코드 from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get('https://www.naver.com/') html = BeautifulSoup(driver.page_source, 'html.parser') sta..
파이썬 리스트 컴프리헨션
·
파이썬/Basic
파이썬 리스트 컴프리헨션은 리스트를 생성하는 간단하고 효율적인 방법입니다. 리스트 컴프리헨션은 for 루프를 사용하여 리스트를 생성하는 것과 유사하지만, 더 간결하고 읽기 쉽습니다. 기본 구조 리스트 컴프리헨션의 기본 구조는 다음과 같습니다. [표현식 for 요소 in 시퀀스] 표현식은 각 요소의 값을 지정합니다. 요소는 시퀀스의 각 요소를 나타냅니다. 시퀀스는 리스트를 생성할 요소를 포함하는 시퀀스입니다. 예제 다음은 리스트 컴프리헨션을 사용하여 1에서 10까지의 정수 리스트를 생성하는 코드입니다. numbers = [i for i in range(1, 11)] 이 코드는 다음과 같이 작동합니다. range(1, 11) 함수를 사용하여 1에서 10까지의 정수 시퀀스를 생성합니다. for 루프를 사용하여..