CSV 기본
·
python/python_selenium
import csv import requests from bs4 import BeautifulSoup filename = "시가총액1-200.csv" # excel에서 열 때 한글이 깨지면 encoding을 `utf-8-sig`로 작성. # 파일을 쓰기모드로 오픈 후 파일객체를 csv.writer 에 넣음. f =open(filename, "w", encoding="utf-8-sig", newline="") writer = csv.writer(f) # string.split("구분자") = 구분자를 기준으로 string을 나눈 뒤 리스트로 삽입 title = "N종목명현재가전일비등락률액면가시가총액상장주식수외국인비율거래량PERROE".split("\\t") # writer.writerow를 통해 list ..
BeautifulSoup4 활용3
·
python/python_selenium
# 다음 영화 이미지 2018~2022 년 1~5순위 포스터 가져오기 import requests from bs4 import BeautifulSoup import lxml for year in range (2018, 2023): url = "" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") images = soup.find_all("img", attrs={"class":"thumb_img"}) for idx,image in enumerate(images): image_url = image["src"] # image_url 가 `//`로 시작하면 앞에 https: 추가. if image_url.st..
BeautifulSoup4 활용2
·
python/python_selenium
# HTTP METHOD # get : 어떤 내용을 누구나 볼수 있게 url에 적어서 보내는 방식 # (한번 보낼때 데이터의 양이 제한이있어 큰 데이터를 보낼 수 없음) # post : url이 아닌 http body에 넣어서 보내는 방식 # (id/pw와 같은 보안이 필요한 업무, 큰 데이터 등을 보낼 수 있음) import requests import re from bs4 import BeautifulSoup for page in range(1,6): url = ""+str(page) header = {'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 ..
BeautifulSoup4 활용1
·
python/python_selenium
import requests from bs4 import BeautifulSoup url = "" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") # tistory 전체 제목 목록 가져오기 # class 속성이 tit_post인 모든 "strong" element를 반환 titles = soup.find_all("strong", attrs={"class":"tit_post"}) print(len(titles)) for title in titles : print(title.get_text()) find_all : 속성이 일치하는 모든 element를 리스트 형태로 반환 ## 가져온 값에 해당하는 정보 ..
BeautifulSoup4 기본
·
python/python_selenium
import requests from bs4 import BeautifulSoup url = "" res = requests.get(url) res.raise_for_status() # res.text 를 lxml파서를 통해 beautifulsoup 객체로 만듬. soup = BeautifulSoup(res.text, "lxml") # html 에서 첫번째로 발견되는 title 값을 가져옴. print(soup.title) # title값의 text값만 가져옴. print(soup.title.get_text()) print(soup.link) # link태그가 가지고있는 속성을 가져옴. print(soup.link.attrs) # link 태그 안의 특정 속성을 출력 print(soup.link['rel..
user agent
·
python/python_selenium
import requests url = "" # uster_agent를 입력함으로서 실제 크롬에서 접속하는것과 동일한 결과를 받을 수 있음. header = {'User-Agent':("Mozilla/5.0 (Windows NT 10.0; Win64; x64) " "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36")} # 응답코드가 403이면 권한없음. res = requests.get(url, headers=header) # res.raise_for_status() print("응답코드 : ",res.status_code) # mygoogle.html 을 쓰기모드로 열고 res.text를 입력. with open("tistor..
정규식
·
python/python_selenium
import re def print_match(m): if m: print(m.group()) else: print("매칭되지 않음.") # . : 하나의 문자를 의미함. # (ca.e) : cake, care, case ... # ^ : 문자열의 시작 # (^de) : desk, demention, dev ... # $ : 문쟈열의 끝 # (se$) : case, rase, base ... # p에 ca.e의 패턴을 입력함. p = re.compile("ca.e") # 텍스트의 문자열의 처음부터 p패턴과 일치하면 match객체를 m에 삽입. # 일치하지 않으면 `None`이 삽입됨 m = p.match("good care") # 매칭되지 않으면 m.group() 출력 시, 에러가 발생함. print_m..
웹스크래핑에 필요한 이론
·
python/python_selenium
1. HTML 웹페이지의 본문 안녕하세요, 조○○입니다. 구글로 이동하기 웹스크래핑 : 웹페이지에서 내가 원하는 부분만 떼오는 것 웹 크롤링 : 페이지가 주어지면 링크를 따라가며 내용을 가져오는 것. HTML : 웹사이트의 뼈대를 의미함. CSS : 웹사이트의 디자인적인 요소를 의미함 Java Script : 웹사이트 내의 움직임, 작업 등을 의미함. 2. Xpath # xpath = html 코드에서 어떠한 값의 경로를 의미함. 김○○ 박○○ 최○○ 조○○ 김○○ ... 3반 박○○ 비슷한 tag or element가 있을 때 어떤 element를 지칭하는지 명확하게 하기 위해 xpath 사용 xpath형식 = /학교/학년/반/학생[n]/... unique 값이 있을 때 = //*[@학번 = "1-1-..