<jupyter_start><jupyter_text>예외처리 어떻게 해야하나 확인<jupyter_code>from bs4 import BeautifulSoup
import requests
import re
from datetime import timedelta
import datetime
import urllib.parse
import numpy as np
import pandas as pd
from time import sleep
import pickle

import os
import glob
os.getcwd()
glob.glob("*.*")
#잘 불러와지나 테스트

df0=pd.read_excel('input_test.xlsx',header = 0,encoding='UTF-8').fillna(0) #header : 앞에 1줄 제외하려고. fillna(0)은 빈칸을 0으로 만들기 위해서
#resd_excel에서 csv파일을 위와 같은 형태의 식으로 부르면 오류가 생김. csv 파일에서는 header 기능을 쓸 수 없을 것으로 보이는 데 그 때문 같다.

df0.head()
n=len(df0.index)
from selenium import webdriver #리모컨 가져온다는 느낌
#test
i=1
inArtist = df0.iloc[i][1]
inSongName = df0.iloc[i][2]

inArtist = "카드캡터 체리 OST"
inSongName = "Catch you Catch me"
print (inArtist,inSongName)
type(inArtist)
# 제어용 웹 드라이버 설정
browser=webdriver.Chrome('C:/chromedriver/chromedriver.exe')
#한글을 url에 쓰이는 utf-8 코드로 변환해보기_1

AAAAA=inArtist+" "+inSongName
print (AAAAA[0])
tt=str("레".encode("utf-8"))
YY=tt.split("\\x")
PP=""
for i in range(len(YY)) :
    if i == len(YY)-1 :
        PP=PP+"%"+YY[i][:-1]    
    elif i != 0 :
        PP=PP+"%"+YY[i]
#한글을 url에 쓰이는 utf-8 코드로 변환해보기_2
ppp=""
for _ in range(len(AAAAA)) :
    if AAAAA[_]==" " :
        ppp=ppp+"%20"
    else :
        tt=str(AAAAA[_].encode("utf-8"))
        YY=tt.split("\\x")
        for i in range(len(YY)) :
            if i == len(YY)-1 :
                ppp=ppp+"%"+YY[i][:-1]
            elif i != 0 :
                ppp=ppp+"%"+YY[i]

print (ppp)

tttttt="%EB%A0%88%EB%93%9C%20%EB%B2%A8%EB%B2%B3%20%EB%B9%A8%EA%B0%84%20%EB%A7%9B"

ppp.upper()==tttttt
url="https://www.genie.co.kr/search/searchMain?query="+inArtist+" "+inSongName
url
browser.get(url)
browser.current_url #이게 그냥 ord 함수로 ascii로 바꾼 걸 16진수로 바꾼건 아니고 utf-8코드로 바꿔야 함.
url=browser.current_url #크롬 드라이버에서 현재 접속해 이쓴ㄴ 주소
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
resp = requests.get(url, headers = headers)
soup = BeautifulSoup(resp.text, 'html.parser')

# 헤더를 지정하지 않고 크롤링을 하면 보안 문제로 접속이 안됨. 아래 블로그에서 유저 정보 참고해서 header에 값 대입해서 하면 됨
# http://blog.naver.com/PostView.nhn?blogId=kiddwannabe&logNo=221185808375
soup.find_all('tr', attrs={'class':'list'})
#tr 들어간거 다 찾는건데 개중에 class가 list인 것만
len(soup.find_all('tr', attrs={'class':'list'}))==0
len(soup.find_all('tr', attrs={'class':'list'}))
soup.find_all('tr', attrs={'class':'list'})[0].text
soup.find_all('tr', attrs={'class':'list'})[0].text=="\n등록된 곡이 없습니다.\n"<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.17394726485635575, 'fraction_numerical': 0.03896103896103896, 'mean_word_length': 4.166666666666667, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '419439', 'license': 'MIT', 'n_tokens_mistral': 1370, 'n_tokens_neox': 1479, 'n_words': 250, 'path': '190503 crawling_beta.ipynb', 'repo_name': 'neulbo-187/making-DB-with-crawling', 'size': '2541'}