IT/IT 이것 저것
(python)크롤링 - 30초만에 구글 사진 크롤링 하기 + python에서 검색어 입력해서 검색
KS짱짱맨
2020. 6. 2. 17:53
오늘 배울 내용
1. GET방식으로 서버 접근할 때, data 입력하기
30초만에 구글 사진 크롤링 코드
import requests
import urllib.request
import urllib.error
from urllib.error import URLError, HTTPError
from bs4 import BeautifulSoup
#세션만들기
s=requests.session()
#서버에 접근
url = "https://www.google.co.kr/search?q=%EA%B7%80%EC%97%AC%EC%9A%B4%EB%8F%99%EB%AC%BC&tbm=isch&ved=2ahUKEwiUg7fUz-LpAhUEHKYKHZF7BloQ2-cCegQIABAA&oq=%EA%B7%80%EC%97%AC%EC%9A%B4%EB%8F%99%EB%AC%BC&gs_lcp=CgNpbWcQAzICCAAyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAA6BAgjECc6BwgjEOoCECdQtgxY9ylghixoBXAAeAKAAaMBiAH3EJIBBDAuMTeYAQCgAQGqAQtnd3Mtd2l6LWltZ7ABCg&sclient=img&ei=pAHWXpShFIS4mAWR95nQBQ&bih=1231&biw=894"
response = session.get(url)
print(response)
#<Response [200]>이 떳다면 성공!!
soup = BeautifulSoup(response.text,'html.parser') #soup 객체를 만든다
img = soup.select("img") #만들어진 soup객체에서 img태그인 녀석들을 찾는다
n=0
for i in img:
src = i['src']
try:
urllib.request.urlretrieve(src, str(n) + '.jpg')
except ValueError: #url 형식이 잘못된 경우
print('url양식이 잘못되었습니다.')
except HTTPError: #불량 url이라 접속이 불가능한 경우
print('url주소에 접근 할 수 없습니다')
n = n+1
여기서 바꿀 내용은 "서버에 접근"하는 부분
STEP 1
검색어가 전달되는 방식 확인
- 개발자도구에서 Network 탭 클릭
- Ctrl + R 을 누르고 --> 가장위에 있는 문서를 눌러본다
- Request Method 확인 = GET 방식임을 확인 할 수 있다.
- GET방식은 URL로 Data를 전달한다 = 즉, 주소창에서 어떤 검색어를 썼는지 확인 가능
STEP 2
URL에서 '검색어'에 해당하는 부분을 python에서 직접 정한다.
#검색어 변수 설정
input = "귀여운동물";
#변수가 url에 입력 될 수 있도록 설정
url = "https://www.google.com/search?q="+input+"&tbm=isch&ved=2ahUKEwjXuLPU2-LpAhWdxYsBHbRdDV8Q2-cCegQIABAA&gs_lcp=CgNpbWcQAzIECCMQJzICCAAyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADoHCCMQ6gIQJ1DHEliVL2DhMGgGcAB4AYABfIgBpguSAQQwLjEzmAEAoAEBqgELZ3dzLXdpei1pbWewAQo&sclient=img&ei=OQ7WXpe4Hp2Lr7wPtLu1-AU&bih=898&biw=1512"
#해당 url을 통해 서버로 접근
response = session.get(url)
print(response)
#<Response [200]>이 떳다면 성공!!
+input 부분을 유심히 보면된다.
STEP 3
실행시키면 OK!
728x90