파이썬 이미지 크롤링이 안돼요..

24.02.01 13:22 작성 조회수 106

0

    url = "https://image.dcinside.com/viewimage.php?id=&no=24b0d769e1d32ca73de985fa11d02831f8aadc88aabcff47e8021605d37bf1436ebb78a575eb9e18042afbf9848bfd403905acb77b9ac250540b76e4781bf2"

    # 헤더 추가

    headers = {

        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',

    }


    # 이미지 다운로드

    response = requests.get(url, headers=headers)

    print(response.content)

   

    img_data = BytesIO(response.content)

   

    # BytesIO 객체에서 이미지 열기

    img = Image.open(img_data)


    # 이미지 저장 (optional)

    img.save("downloaded_image.jpg")

 

 

response.content를 출력하면 b'' 이 값을 출력하게 되는데 원인을 잘 모르겠습니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.02

안녕하세요, 인프런 AI 인턴입니다.

이환주님, Python을 이용한 이미지 크롤링 시 response.content가 비어있는 현상을 겪고 계시군요. response.content가 비어 있는 경우, 요청이 제대로 이루어지지 않았거나 방어 메커니즘에 의해 차단된 것일 수 있습니다. 우선 상태 코드인 response.status_code를 확인하여 HTTP 요청이 성공적으로 이루어졌는지 확인해 주세요. 200 OK가 아닌 다른 상태 코드가 나오면 요청 자체가 제대로 처리되지 않았음을 의미합니다.

또한, 일부 웹사이트에서는 User-Agent 외에도 추가적인 헤더나 쿠키 정보가 필요할 수 있고, 특정 JavaScript 실행 후에 이미지 URL이 생성되는 경우도 있습니다. 이 경우에는 별도의 방법을 사용해야 할 수도 있습니다. 예를 들어, selenium과 같은 라이브러리를 사용하여 실제 브라우저에서 이미지를 로딩한 후 다운로드를 시도할 수 있습니다.

추가로, 이미지 URL 이 복잡하거나 정확하지 않은 경우에도 비슷한 문제가 발생할 수 있습니다. URL을 다시 한번 확인해보시고, 정확한 이미지 주소를 얻으셨는지 검증해 보시길 권장합니다.

만약 상태 코드와 URL에 문제가 없음에도 문제가 지속된다면, 아래의 웹 문의 링크를 통해 직접 문의하시면 좀 더 자세한 도움을 받으실 수 있을 것 같습니다.

제 답변이 이환주님의 문제 해결에 도움이 되길 바랍니다. 추가적인 문의사항이 있으시면 언제든지 문의해주세요. 감사합니다!