Python 및 BeautifulSoup로 끊어진 링크를 확인하는 웹 크롤러 구축 🕷️

이 기사에서는 끊어진 링크를 확인하는 BeautifulSoup과 Python을 사용하여 간단한 웹 크롤러를 빌드하는 방법을 보여 드리겠습니다.

영상을 보고 싶으시면 아래 영상을 확인하세요.


전제 조건



응용 프로그램을 만들기 전에 장치에 다음 도구를 설치해야 합니다.
  • Python 3. 아직 설치하지 않은 경우 해당 사이트website에서 다운로드하여 설치합니다.
  • IDE. 사용 가능한 모든 IDE/텍스트 편집기를 자유롭게 사용할 수 있습니다. PyCharm을 사용하겠습니다. 무료 버전을 다운로드하려면 Community Edition을 다운로드하여 설치해야 합니다.
  • 뷰티풀수프. pip를 사용하여 BeautifulSoup을 다운로드하고 설치해야 합니다. 명령줄(또는 터미널)에서 다음 명령을 실행할 수 있습니다. pip install beautifulsoup4
  • requests . 이것은 우리가 설치해야 하는 마지막 라이브러리입니다. 다음 명령을 입력하여 설치할 수도 있습니다.pip install requests

  • 뷰티풀수프란?



    Beautiful Soup은 HTML 및 XML 파일에서 데이터를 추출하는 Python으로 작성된 라이브러리입니다. 데이터를 빠르게 얻고 프로그래머의 시간을 많이 절약하려는 경우 잘 작동합니다.

    스크립트 작성



    가장 먼저 해야 할 일은 스크립트를 만드는 것입니다. IDE에서 빈 파일을 만들고 이름을 지정합니다verify_response_code.py.

    두 번째로 해야 할 일은 BeautifulSoup (필수 구성 요소에 설치한 라이브러리)에서 bs4를 가져오는 것입니다. 또한 라이브러리requests를 가져와야 합니다. 코드는 다음과 같습니다.

    from bs4 import BeautifulSoup, SoupStrainer
    
    import requests
    


    다음으로, 이름이 url인 변수를 생성합니다. 여기에서 링크를 검색할 URL을 입력하는 프롬프트 메시지를 생성합니다. 코드는 다음과 같습니다.

    url = input("Enter your url: ")
    


    그런 다음 요청 라이브러리를 사용할 변수를 만듭니다. 라이브러리 내에서 get 메서드를 사용하여 입력한 URL을 실제로 가져옵니다.

    page = requests.get(url)
    


    우리는 우리의 URL을 알고 있습니다. 이제 응답 코드를 검색하려고 합니다. 사이트를 사용할 수 있으면 응답 코드 200을 얻고 싶습니다. 사용할 수 없으면 응답 코드 404를 얻습니다. 이전에 사용했던 변수page를 사용하고 다음을 사용하여 변환할 것입니다. str 방법. 우리의 코드는 다음과 같습니다

    response_code = str(page.status_code)
    


    또한 애플리케이션은 URL 텍스트 자체를 표시해야 합니다. 이를 위해 URL을 문자열로 표시할 data라는 변수를 만듭니다.

    data = page.text
    


    추가해야 하는 마지막 변수는 soup 입니다. 이 변수에서 BeautifulSoup에 할당하고 data 변수를 인수로 사용합니다. BeautifulSoup의 내장 메서드를 사용할 수 있도록 이렇게 합니다.

    soup = BeautifulSoup(data)
    


    웹 크롤러의 마지막 단계는 for-loop를 추가하는 것입니다. find_all 인수와 함께 'a' 메서드를 사용할 것입니다. 웹 페이지에서 모든a 요소를 찾으려고 합니다. 그런 다음 URL을 인쇄할 것입니다. get 메서드를 다시 사용하여 값이 a 인 모든 href 요소를 가져옵니다. 이는 URL만 갖고 싶다는 것을 나타냅니다. 그 옆에 응답 코드를 입력하고 싶습니다. 이제 코드는 다음과 같습니다.

    for link in soup.find_all('a'):
        print(f"Url: {link.get('href')} " + f"| Status Code: {response_code}")
    


    올바른 경우 전체 코드는 다음과 같아야 합니다.

    # Import libraries
    from bs4 import BeautifulSoup, SoupStrainer
    import requests
    
    # Prompt user to enter the URL
    url = input("Enter your url: ")
    
    # Make a request to get the URL
    page = requests.get(url)
    
    # Get the response code of given URL
    response_code = str(page.status_code)
    
    # Display the text of the URL in str
    data = page.text
    
    # Use BeautifulSoup to use the built-in methods
    soup = BeautifulSoup(data)
    
    # Iterate over all links on the given URL with the response code next to it
    for link in soup.find_all('a'):
        print(f"Url: {link.get('href')} " + f"| Status Code: {response_code}")
    


    이제 터미널에 python verify_response_code.py 를 입력하여 스크립트를 실행합니다. URL을 입력하라는 메시지가 표시됩니다. 주어진 URL을 입력하고 Enter 키를 누릅니다. 일이 잘 진행되고 있다면 아래와 같은 출력을 받아야 합니다.



    그게 다야! 작은 웹 크롤러가 완료되었습니다. 이 기사가 귀하에게 도움이 되었기를 바랍니다. 제 블로그에서 더 많은 내용을 확인하고 싶으시면 뉴스레터에 가입하세요.

    즐거운 코딩하세요!

    아래 비디오를 확인하십시오.


    ➡️ 프로그래밍에 대한 더 많은 팁을 알고 싶다면 제 blog 를 확인하세요.
    ➡️ 또한 더 많은 튜토리얼을 보려면 언제든지 내 것을 확인하십시오!

    좋은 웹페이지 즐겨찾기