웹 페이지를 스크래핑하고 싶습니다! 무엇이 필요합니까?

웹 페이지를 스크래핑하고 싶습니다!



필요한 것
  • Python requests 라이브러리
  • BeautifulSoup4

  • 상기 2개가 없으면 미리 설치해 둡시다.

    Python의 requests 라이브러리란 무엇입니까?


  • 이 라이브러리에서 웹 페이지를 다운로드할 수 있습니다.
  • 웹 서버에 GET 요청 (HTML 콘텐츠 다운로드)

  • 요청을 실행하면 Response 개체가 옵니다. 이 객체는 status_code 속성을 가지며 웹 페이지가 제대로 다운로드되었는지 여부를 확인합니다.

    scraping_test.py
    from bs4 import BeautifulSoup
    import requests
    
    page = requests.get("http://dataquestio.github.io/web-scraping-pages/simple.html")
    print(page.status_code)
    

    이 시점에서 $ python scraping_test.py 실행 결과
    200이 되었습니다. status_code가 200이라는 것은 다운로드 성공입니다.

    content 속성을 사용하면 HTML 내용을 표시합니다.

    scraping_test.py
    from bs4 import BeautifulSoup
    import requests
    
    page = requests.get("http://dataquestio.github.io/web-scraping-pages/simple.html")
    # print(page.status_code)
    print(page.content)
    

    이 시점에서 $ python scraping_test.py 실행 결과
    b'<!DOCTYPE html>\n<html>\n <head>\n <title>A simple example page</title>\n </head>\n <body>\n <p>Here is some simple content for this page.</p>\n </body>\n</html>'

    여기까지 requests 라이브러리의 설명을 했습니다. 이 라이브러리의 속성으로는 status_codecontent 를 기억해 둡시다.

    BeautifulSoup 라이브러리란?



    취득한 HTML 문서를 해석해, 텍스트를 추출하는 라이브러리입니다.

    문서를 구문 분석하기 위해 BeautifulSoup 클래스의 인스턴스를 만듭니다.
    HTML 파서: HTML의 텍스트나 특정 태그의 내용을 추출. 파이썬 표준 html.parser에서 OK.
    prettify() 메서드: 소스 코드를 보기 쉽게 표시

    scraping_test.py
    soup = BeautifulSoup(page.content, 'html.parser')
    print(soup.prettify())
    

    참조 페이지 : dataquest

    좋은 웹페이지 즐겨찾기