본문 바로가기
Python

[python] for 문 내 리스트 2개 이상 사용시 zip 구문을 이용하자.

by 퍼포먼스마케팅코더 2022. 9. 21.
반응형

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
반응형

댓글