Note

인스타그램 크롤링 (7) - Beautiful Soup으로 사진 크롤링 본문

etc/Crawling

인스타그램 크롤링 (7) - Beautiful Soup으로 사진 크롤링

알 수 없는 사용자 2022. 7. 10. 21:39
728x90
df = pd.DataFrame()

ccnt = 0

for j in range(10):
    
    if cnt % 3 == 0:
        time.sleep(10)
    ccnt += 1
    
    body = driver.find_element_by_tag_name('body')

    num_of_pagedowns = 5

    while num_of_pagedowns:
        body.send_keys(Keys.PAGE_DOWN)
        time.sleep(3)
        num_of_pagedowns -= 1

    html0 = driver.page_source # 현재 페이지 html
    html = bs(html0,'html.parser')

    picture_info = {}

    cnt = 0

    for i in tqdm(range(0,len(html.find_all('img', {'class' : '_aagt'})))): # 사진 수를 넘지 않는 범위에서 설정 
        try:
            result = {}

            if cnt % 9 == 2:
                time.sleep(3)
            cnt += 1

            # 사진 id
            pic_id = html.find_all('a', {'class' : 'oajrlxb2 g5ia77u1 qu0x051f esr5mh6w e9989ue4 r7d6kgcz rq0escxv nhd2j8a9 nc684nl6 p7hjln8o kvgmc6g5 cxmmr5t8 oygrvhab hcukyx3x jb3vyjys rz4wbd8a qt6c0cv9 a8nywdso i1ao9s8h esuyzwwr f1sip0of lzcic4wl _a6hd'})
            picture_id = pic_id[i]['href'].split('/')[2]
            result['picture_id'] = picture_id


            # 사진 링크
            pic_link = html.find_all('img', {'class' : '_aagt'})
            picture_link = pic_link[i]['src']
            result['picture_link'] = picture_link

        except:
            continue

        result_df = pd.DataFrame.from_dict(picture_info, 'index')
        
    df = pd.concat([df,result_df])
    df = df.drop_duplicates(['picture_id'])
    df = df.reset_index(drop = True)
Comments