insta = soup.select('.v1Nh3.kIKUG._bz0w')
n = 1
for i in insta:
driver.find_element_by_xpath("//body").send_keys(Keys.END)
with urlopen(i.select_one('.KL4Bh').img['src']) as f:
with open("./이미지 추출 결과/" + hashTag + "/" + hashTag + str(n) + '.jpg', 'wb') as h:
self.listWidget.addItem(str(n) + '번째 이미지 다운로드 중...')
img = f.read()
h.write(img)
n += 1
위 소스코드는 인스타그램 크롤링 소스코드구요.
접속 URL은 해시태그를 검색했을 때의 URL인 https://www.instagram.com/explore/tags/'검색어' 로 지정해놓았습니다.
예를 위해서 파이썬으로 검색 (https://www.instagram.com/explore/tags/파이썬) 하면 아래와 같은 화면이 나오구요,
이미지에 해당하는 클래스 네임도 우측에 나와있습니다.
(첨부한 소스코드 가장 첫번째 라인에 soup.select 해놓은 네임으로 있습니다!)
근데 여기서 한가지 문제가, 다른 웹사이트 (네이버, 구글)등의 경우 스크롤을 쫙 내려놓은 상태에서 크롤링을 하면,
100개고 200개고 대량의 이미지 추출이 가능한데, 인스타의 경우는 이게 불가하더군요. 이유를 살펴보니,
클래스 네임 입력한 상태로 엔터를 계속 눌러주면서 쭈우우욱 내려오고 있습니다 (오른쪽에 나와있지만
현재 검색 인덱스는 54 / 66 상태 입니다!)
??? 다시 처음으로 돌아와버렸습니다. (54 / 66이였던 인덱스가 1 / 51로 바뀌고 맨 첫번째로 돌아옴..)
이렇듯 인스타 웹사이트는 뭔가 다른 웹사이트와 달리 이미지 클래스가 쌓이는게 아니라 계속 변하는 것 같은데..
이런 경우에 인스타그램에서 대량의 이미지를 추출하려는 경우 어떻게 해야하는걸까요? ㅠㅠ