Python

    CSS selector 사용해서 크롤링하기

    CSS selector 사용법 select() 안에 태그/ CSS class 이름 등을 넣어주면 된다. 결과값은 리스트로 반환된다. 매칭되는 첫번째 데이터만 얻고자 할 때는 select_one(), 이 때는 해당 아이템 객체가 리턴 1) 태그 선택 import requests from bs4 import BeautifulSoup res = requests.get('https://davelee-fun.github.io/blog/crawl_test_css.html') soup = BeautifulSoup(res.content,'html.parser') items = soup.select('li') for item in items: print(item.get_text()) 2) 하위태그 선택 - 띄어쓰기로 하..

    실전 크롤링과 크롤링 기술팁

    실전 크롤링과 크롤링 기술팁

    1. 크롬 브라우저 활용하기 크롬 개발자 모드 (윈도우) Ctrl + Shift + i F12 마우스로 원하는 부분 클릭 2. 추출한 것에서 또 추출하기 find()로 더 크게 감싸는 HTML 태그로 추출하고 다시 추출된 데이터에서 find_all()로 원하는 부분을 추출 추출된 데이터는 객체(object) 이다. import requests from bs4 import BeautifulSoup res = requests.get('https://davelee-fun.github.io/blog/crawl_test') soup = BeautifulSoup(res.content,'html.parser') section = soup.find('ul',id='hobby_course_list') titles = s..

    웹구조와 HTML 이해하기

    웹페이지는 HTML 기본 구조를 가집니다. // 이 문서는 HTML 언어를 사용 // 여기서부터 HTML 문서 시작 // 문서 전체 정보 (제목..) // 문서 실제 내용 웹브라우저로 HTML을 오픈했는데 글자가 깨지면 다음 태그를 head 태그 안에 넣자. HTML 이해를 기반으로 크롤링 하기 from bs4 import BeautifulSoup html = " \ \ [1]크롤링이란? \ 웹페이지에서 필요한 데이터를 추출하는 것 \ 파이썬을 중심으로 다양한 웹크롤링 기술 발달 \ \ " soup = BeautifulSoup(html, 'html.parser') # 태그로 검색 방법 data = soup.find('h1') print(data) // [1]크롤링이란? print(data.string) ..

    크롤링 코드 패턴으로 익히기

    크롤링 코드 패턴으로 익히기

    1. 라이브러리 import 필요 라이브러리 requests 웹페이지 가져오기 라이브러리 bs4 (BeautifulSoup) 웹페이지 분석 라이브러리 import requests from bs4 import BeautifulSoup 2. 웹페이지 가져오기 HTML 파일 확인하기 웹브라우저로 확인 오른쪽 클릭 + 페이지 소스 보기 라이브러리로 확인 res = requests.get('http://~') res.content # 해당 웹페이지의 HTML 파일 확인 3. 웹페이지 파싱하기 파싱: 문자열의 의미 분석 BeautifulSoup 라이브러리를 이용하여 파일을 일일이 파싱한다. soup = BeautifulSoup(res.content, 'html.parser') ⭐4. 필요한 데이터 추출하기 soup..

    파이썬 라이브러리

    라이브러리 파이썬 라이브러리는 필요한 코드를 재사용하기 위해 필요할 때 언제든 호출할 수 있게끔 만들어진 클래스와 함수들의 모음이다. (=외장함수, 모듈) import math import math as d num = d.factorial(5) → 라이브러리의 함수를 사용하려면 라이브러리명.함수명으로 써야 한다. from math import func1, fun2, fun3 from math import * from math import factorial as f num = f(5) → 라이브러리 내 일부 함수만 불러와서 사용하고, 함수명만 쓰면 된다.

    [13주차] 문자열 처리

    #1254 import sys input = sys.stdin.readline def solution() : for i in range(len(s)): tmp = s + s[:i][::-1] if tmp == tmp[::-1] : print(len(tmp)) break s = input().rstrip() solution() # 19583 import sys input = sys.stdin.readline S,E,Q = input().split() S = int(''.join(S.split(':'))) E = int(''.join(E.split(':'))) Q = int(''.join(Q.split(':'))) student = dict() while True: line = input() if len(l..

    문자열

    문자열 자르기 string[start:end:step] : start 인덱스부터 end-1 인덱스 내에서 step 간격으로 슬라이싱 string[:end] : 맨 처음부터 end-1, 즉 마지막에서 두번째 인덱스까지 슬라이싱 string[start:] : start 인덱스부터 문자열의 마지막까지 슬라이싱 string[start:end] : start 인덱스부터 end-1 까지 슬라이싱 start와 end는 문자열의 index를 의미한다. string[start:end]는 start를 포함하고, end를 포함하지 않는 문자열을 추출한다. step을 생략하면 기본적으로 1로 설정된다. my_str = "This is a substring tutorial..!" result = my_str[-5:] print..

    파이썬의 클래스

    파이썬의 클래스

    https://wikidocs.net/28 05-1 클래스 초보 개발자들에게 클래스(class)는 넘기 힘든 장벽과도 같은 존재이다. 독자들 중에도 클래스라는 단어를 처음 접하는 이들도 있을 것이다. 그러면 도대체 클래스가 무엇인지 ... wikidocs.net 클래스는 왜 필요한가? c언어에는 클래스가 없고, 파이썬에는 있지만 클래스를 사용하지 않은 파이썬 프로그램들도 상당히 많다. 하지만 프로그램을 작성할 때 클래스를 적재적소에 사용하면 상당한 이익을 얻을 수 있다. 계산기 예제 계산기는 이전에 계산한 결과값을 항상 메모리 어딘가에 저장하고 있어야 한다. 기존 방식을 이용하여 계산기의 '더하기' 기능을 구현한 파이썬 코드는 다음과 같다. result = 0 def add(num): global res..

    부분합

    부분합

    1차원 배열 sum[i] = arr[0]+arr[1]+...arr[i-1] arr의 i항부터 j항까지의 합을 S(i,j)라고 했을 때, S(i,j)는 sum[j+1]-sum[i] 이다. 2차원 배열 sum[i][j] 에는 arr[0][0] 부터 arr[i-1][j-1] 까지의 합이 담겨있다. sum 배열 만드는법 sum_arr[i][j] = arr[i-1][j-1] + sum_arr[i-1][j] + sum_arr[i][j-1] - sum_arr[i-1][j-1]

    08/22

    # 18223 러버덕 # 장꾸 영훈 import sys input = sys.stdin.readline pw = input() k = int(input()) #1,2,3,4 -> 2**4수열 생성 num = [] n = 0 for i in range(len(pw)-1,-1,-1): if pw[i]=='1' or pw[i]=='6' or pw[i]=='2' or pw[i]=='7': #num[n] = i num.insert(n,i) n += 1 if pw[i]=='6': #pw[i] = '1' 이 방식은 수정불가 pw = pw.replace('6','1') elif pw[i]=='7': pw = pw.replace('7','2') print(num) n = 0 k -= 1 while k>0: # k를 2로..