반응형
python for 문 내 리스트 여러 개 돌릴시 zip 이용해 보기
for 문 내에 list 2개 이상 여러개 돌릴시 zip 파일을 이용하면은 2개 다 사용이 가능하다. 다만 중요한 것은 갯수가 맞아야 한다. 갯수가 틀리면은 for 문이 정상적으로 돌아가질 않으니 이 점은 꼭 참고해서 잊지 않고 사용해서 오류가 나오질 않도록 해야된다.
import requests
from bs4 import BeautifulSoup
import re
import time
n = 1
keywords = [ 'your keyword'
] #키워드 입력
urls = [ 'http://www.woorimal.net/hangul/hyundai-poem/ddodarungohyang.htm'
] #URL 입력
for keyword, url in zip(keywords, urls) : #for 문 내 리스트 여러개 돌릴시 zip 구문을 이용하면 된다.
headers = { 'Accept-Language' : 'ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6,zh;q=0.5',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36',
'Accept-Encoding': 'gzip'
}
raw = requests.get(url=url, headers=headers)
#html = BeautifulSoup(raw.content.decode('euc-kr', 'replace'), 'html.parser') #글자 깨질시 content 로 하면 된다
#html = BeautifulSoup(raw.content.decode('euc-kr', 'replace'), 'html.parser') #글자 깨질시 content 로 하면 된다. 이외 decode로 cp949, euc-kr 로 바꿔 진행
html = BeautifulSoup(raw.content.decode('euc-kr', 'replace'), 'html.parser') #글자 깨질시 컨텐츠로 하면됨.
results = html.find_all('td')
poetry_appreciation = [] #감상
poetry_characteristics = [] #특징
poetry_subject = [] #주제
poetry_commentary = [] #해설
poetry_analysis = [] #분석
for i in results[0:9] : #시 감상
i = i.text
i = i.replace("\xa0", "")
poetry_appreciation.append(i)
#print(results[0]) #시제목 -> 감상
#print(results[3]) #시내용 -> 감상
#print(results[7]) #시내용 -> 감상
test = results[10].text #특징, 주제
#test = test.replace(" ", " ")
#test = test.replace(" ", " ")
#test = test.replace("\n\n", " ")
if test.find("주제 ") > 0 : #배경
poetry_characteristics.append(test[: test.find("주제 ")]) #주제 단어 포함시 이전까지
#print(poetry_characteristics)
if test.find("주제 ") > 0 : #주제
poetry_subject.append(test[test.find("주제 ") : len(test)]) #해당 주제 단어 이후 끝단어까지 정렬 <- 주제
#print(poetry_subject)
#print(results[10]) #시내용 -> 해설
poetry_analysis.append(results[11].text) #분석 (시상의 흐름)
for i in results[12: len(results)] : #해설
i = i.text
poetry_commentary.append(i)
#print(poetry_commentary)
#test = results[10].text #특징, 주제
#test = test.replace(" ", " ")
#test = test.replace(" ", " ")
#test = test.replace("\n\n", " ")
#if test.find("주제 ") > 0 :
# print(test[: test.find("주제 ")]) #특정 주제 단어 전까지 <- 특징
#if test.find("주제 ") > 0 : #특정 주제 단어 포함시
# print(test[test.find("주제 ") : len(test)]) #해당 단어의 끝단어까지 정렬 <- 주제
#print(results[11])
#print(results[11].text) #시상의 흐름 (분석)
#for i in results[12: len(results)] : #해설
# print(i.text)
#################### 메모장에 넣기
#for keyword in keywords :
file_1 = open('C:/Users/user/raw/literature/키워드_포스팅_'+str(n)+'_'+str(keyword)+'_해설.txt', 'w', encoding='utf-8-sig') #해설
file_2 = open('C:/Users/user/raw/literature/키워드_포스팅_'+str(n)+'_'+str(keyword)+'_주제.txt', 'w', encoding='utf-8-sig') #주제
file_3 = open('C:/Users/user/raw/literature/키워드_포스팅_'+str(n)+'_'+str(keyword)+'_감상.txt', 'w', encoding='utf-8-sig') #줄거리 -> 감상으로 변경
file_4 = open('C:/Users/user/raw/literature/키워드_포스팅_'+str(n)+'_'+str(keyword)+'_특징.txt', 'w', encoding='utf-8-sig') #특징
file_5 = open('C:/Users/user/raw/literature/키워드_포스팅_'+str(n)+'_'+str(keyword)+'_분석.txt', 'w', encoding='utf-8-sig') #분석
for text in poetry_commentary : #해설
file_1.write(text)
for text in poetry_subject : #주제
file_2.write(text)
for text in poetry_appreciation : #감상
file_3.write(text)
for text in poetry_characteristics : #특징
file_4.write(text)
for text in poetry_analysis : #분석
file_5.write(text)
file_1.close()
file_2.close()
file_3.close()
file_4.close()
file_5.close()
print(str(keyword) + "의 메모장 정리 완료")
n +=1
print("최종 정리 완료")
#감상 poetry_appreciation
#특징 poetry_characteristics
#주제 poetry_subject
#해설 poetry_commentary
#분석 poetry_analysis
반응형
'Python' 카테고리의 다른 글
[python] json, dict 에서 DataFrame 변환시 All arrays must be of the same length 오류 해결 (0) | 2022.10.01 |
---|---|
[python] 메모장 내 텍스트가 없는지 빠른 확인 방법 (0) | 2022.09.25 |
[python] list 내 None 결과값 처리하는 방법 (0) | 2022.09.21 |
[python] 티스토리 xml 백업해보기 (0) | 2022.09.20 |
[python] 엑셀 파일 내 자격증 게시판 파일 url 다운로드 해보기 (0) | 2022.09.18 |
댓글