Python 및 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 를 확인하세요.
➡️ 또한 더 많은 튜토리얼을 보려면 언제든지 내 것을 확인하십시오!
Reference
이 문제에 관하여(Python 및 BeautifulSoup로 끊어진 링크를 확인하는 웹 크롤러 구축 🕷️), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/arvindmehairjan/build-a-web-crawler-to-check-for-broken-links-with-python-beautifulsoup-39mg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)