본문 바로가기

프로그래밍

(141)
190224> Python-Naver News 크롤링 Q. 네이버 메뉴 중 색칠 칠한 뉴스란을 크롤링해보자. A.import urllib.request import bs4 url = "https://www.naver.com/" html = urllib.request.urlopen(url) bs_obj = bs4.BeautifulSoup(html, "html.parser") ul = bs_obj.find("ol", {"class":"ca_l"}) lis = ul.findAll("li") for li in lis: a = li.find("a") O.소식통 "김정은 전용열차, 톈진역 통과해 남행 관측"北美 하노이 의제협상팀, 정상회담 'D-3' 맞아 '숨고르기'4대강 보 해체 논란…"900억 들여 해체?"vs"유지비 1천700억""'환경부 블랙리스트' 보은성 인..
190224> Python-Naver Menu 크롤링 Q. Q-1. 메일 / 카페 / 블로그 / 지식in / 쇼핑 / 네이버페이 / 네이버티비Q-2. 사전 / 뉴스 / 증권 / 부동산 / 지도 / 영화 / 뮤직 / 책 / 웹툰네이버 상기 메뉴를 크롤링 해보자. A.A-1.import urllib.request import bs4 url = "https://www.naver.com/" html = urllib.request.urlopen(url) bs_obj = bs4.BeautifulSoup(html, "html.parser") ul = bs_obj.find("ul", {"class":"an_l"}) lis = ul.findAll("li") for li in lis: a_tag = li.find("a") span = a_tag.find("span",{"cl..
190224> Jupyter Notebook으로 확인하는 BeautifulSoup In [32]: #-*- coding: utf-8 -*- from bs4 import BeautifulSoup as bs In [33]: html_doc = """ 초콜릿 과자 사탕 오렌지 """ In [34]: # html 파서를 이용해서 html 형태의 데이터를 읽어온다. soup = bs(html_doc, 'html.parser') In [35]: # 1. td 태그를 모두 찾아서 td_list 담은 후, 루프를 돌리면서 각 td 태그 내용을 출력한다. td_list = soup.find_all('td') In [36]: for td_item in td_list: print(td_item.string) 사탕 오렌지 In [37]: # 2. id 가 choco 인 항목을 찾아서 해당 태그 내용을 출력..
190217> Python 정규표현식 연습 import re data = """ park 800905-1049118 kim 700905-1059119 """ pat = re.compile('(\d{6})[-]\d{7}') # 숫자 6자리 - 숫자 7자리 # print(pat.sub('\g', data)) # 0은 전체를 의미 # print(pat.sub('\g', data)) # 1은 \d{6} # print(pat.sub('\g', data)) # 2는 \d{7} print(pat.sub('\g-*******', data)) # 뒷자리를 *로 마킹 import re s = 'Apple is a big company and apple is very delicious.' c = re.compile('apple') result = c.findall(..
190224> Python-M.NET 차트 순위 crawling Q.엠넷 차트 순위를 크롤링 하여 목록화 / 이미지를 다운받자. A.import bs4 import requests def save_image(img_url, date, rank, title, artist): response = requests.get(img_url) content = response.content filename = "{}\\{:03}_{}_{}.jpeg".format(date, rank, title, artist) file = open(filename,"wb") file.write(content) date = input("검색할 날짜[YYYYmmdd]를 입력하세요 : ") pages = int(input("총 몇 페이지를[50/page]를 크롤링할까요 : ")) charts = [] ..
[함수]str를 int로 변환하는 함수 def str2int(slist): nlist = [] for s in slist: nlist.append(int(s)) return nlist str를 불러와 int로 변환하는 함수
[함수]list를 dict로 만드는 함수 def list2dict(lists, keys): dicts = {} for l in lists: k = l[0] temp = {} for i in range(0, len(keys)): temp[keys[i]] = l[i + 1] dicts[k] = temp return dicts list를 불러와서 dict로 변환하는 함수
[함수]csv를 list로 만드는 함수 def csv2list(filename): import csv file = open(filename, 'r') csvfile = csv.reader(file) lists = [] for item in csvfile: lists.append(item) return lists csv를 파일을 불러와 리스트로 변환하는 함수. # CSV를 2차원 인덱스로 만들어서 DATA 분석 def csv2list(filename): lists = [] file = open("파일경로\test.csv", "r") while True: line = file.readline().rstrip("\n") if line: line = line.split(",") lists.append(line) else: ..