웹 스크래핑이란 무엇이며 웹 문자열을 사용하는 이유는 무엇입니까?
게시 됨: 2021-08-01웹사이트는 귀중한 데이터로 가득 차 있으며, 데이터 조달에는 사용자 시스템과의 호환성 여부와 상관없이 정보를 수동으로 복사하여 붙여넣거나 회사에서 사용하는 형식을 준수하는 복잡한 프로세스가 포함됩니다. 이것은 웹 스크래핑이 필요한 곳입니다.
목차
웹 스크래핑 - 무엇입니까?
웹 스크래핑(Web Scraping)은 웹사이트에서 데이터를 추출하고 구문 분석하여 사용자에게 유용한 형식으로 변환하는 프로세스입니다.
웹 스크래핑은 수동으로 수행할 수 있지만 많은 양의 원시 데이터가 관련되면 프로세스가 복잡하고 지루해집니다. 자동화된 웹 스크래핑 도구가 더 빠르고 효율적이며 상대적으로 저렴하기 때문에 여기에서 효과가 나타납니다.
웹 스크레이퍼는 웹사이트의 구성과 형태에 따라 그 활용도가 달라지기 때문에 그 특징과 기능이 역동적입니다. 데이터 사이언스의 다양한 개념과 방법을 이해하기 위해 upGrad에서 최고의 대학에서 데이터 사이언스를 배우십시오.
유용한 데이터를 웹 스크래핑하는 방법?
웹 스크래핑 프로세스는 사용자에게 하나 이상의 URL을 제공하는 것으로 시작됩니다. 스크래핑 도구는 스크랩해야 하는 웹 페이지에 대한 HTML 코드를 생성합니다.
그런 다음 스크레이퍼는 사용자의 요구 사항에 따라 웹 페이지에서 사용할 수 있는 전체 데이터 또는 페이지의 선택된 부분만 퍼냅니다.
추출된 데이터는 사용 가능한 형식으로 변환됩니다.
일부 웹사이트에서 웹 스크래핑을 허용하지 않는 이유는 무엇입니까?
일부 웹사이트는 사용자가 데이터를 스크랩하는 것을 노골적으로 차단합니다. 하지만 왜? 그 이유는 다음과 같습니다.
- 민감한 데이터를 보호하기 위해: 예를 들어 Google 지도는 쿼리가 너무 많은 경우 사용자가 더 빠른 결과를 얻을 수 있도록 허용하지 않습니다.
- 빈번한 충돌을 방지하려면: 웹사이트의 서버는 많은 대역폭을 소모하기 때문에 유사한 요청으로 가득 차면 충돌하거나 속도가 느려질 수 있습니다.
다양한 범주의 웹 스크레이퍼
웹 스크레이퍼는 많은 측면에서 서로 다릅니다. 네 가지 유형의 웹 스크레이퍼가 사용됩니다.
- 사전 구축 또는 자체 구축
- 브라우저 확장
- 사용자 인터페이스(UI)
- 클라우드 및 로컬
1. 자체 제작 웹 스크레이퍼
웹 스크레이퍼를 구축하는 것은 매우 간단하여 누구나 할 수 있습니다. 그러나 사용자가 고급 프로그래밍에 정통한 경우에만 스크래핑 도구를 다루는 지식을 얻을 수 있습니다.
프로그래밍에 약한 사람들을 위해 자체 제작한 웹 스크레이퍼가 많이 있습니다. 이러한 사전 구축된 도구는 즉시 다운로드하여 사용할 수 있습니다. 이러한 도구 중 일부는 스크랩 예약, Google 시트 내보내기, JSON 등과 같은 고급 기능을 갖추고 있습니다.
2. 브라우저 확장
널리 사용되는 두 가지 형태의 웹 스크레이퍼는 브라우저 확장 프로그램과 컴퓨터 소프트웨어입니다. 브라우저 확장 프로그램은 Firefox 또는 Google Chrome과 같은 브라우저에 연결할 수 있는 프로그램입니다. 확장 프로그램은 실행하기 쉽고 브라우저에 쉽게 병합될 수 있습니다. 브라우저 내부에 배치된 경우에만 데이터 구문 분석에 사용할 수 있으며 브라우저 외부에 배치된 고급 기능은 스크레이퍼 확장을 사용하여 구현할 수 없습니다.
이러한 제한을 완화하기 위해 스크래핑 소프트웨어를 컴퓨터에 설치하여 사용할 수 있습니다. 확장 기능만큼 간단하지는 않지만 브라우저 제한 없이 고급 기능을 구현할 수 있습니다.
3. 사용자 인터페이스(UI)
웹 스크레이퍼는 UI 요구 사항이 다릅니다. 일부는 단일 UI와 명령줄만 필요하지만 다른 일부는 사용자가 클릭 한 번으로 필요한 데이터를 스크랩할 수 있도록 전체 웹사이트가 사용자에게 제공되는 완전한 UI가 필요할 수 있습니다.
일부 웹 스크래핑 도구에는 사용자가 소프트웨어에서 제공하는 모든 기능을 이해할 수 있도록 사용자 인터페이스를 통해 팁과 도움말 메시지를 표시하는 기능이 있습니다.
4. 클라우드 또는 로컬
로컬 스크레이퍼는 리소스 및 인터넷 연결을 사용하는 컴퓨터에서 실행됩니다. 이것은 스크레이퍼를 사용할 때 컴퓨터 속도를 늦추는 단점이 있습니다. 또한 많은 URL에서 실행되도록 만들 때 ISP 데이터 한도에 영향을 줍니다.
반대로 클라우드 기반 스크래핑 도구는 스크래퍼를 개발하는 회사에서 제공하는 오프사이트 서버에서 실행됩니다. 이렇게 하면 컴퓨터 리소스를 확보할 수 있으며 사용자는 동시에 스크랩하면서 다른 작업을 수행할 수 있습니다. 스크래핑이 완료되면 사용자에게 알림이 제공됩니다.
세계 최고의 대학에서 온라인으로 데이터 과학 인증 을 받으십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
다양한 방법을 사용한 웹 스크래핑
널리 사용되는 웹 스크래핑의 네 가지 방법은 다음과 같습니다.
- 문자열 메서드를 사용하여 웹에서 데이터 구문 분석
- 정규식을 사용하여 데이터 구문 분석
- HTML 파서를 사용하여 데이터 추출
- 다른 웹사이트의 구성 요소와 상호 작용하여 데이터를 스크랩합니다.
문자열 메서드를 사용하여 웹에서 데이터 구문 분석
- 이 기술은 문자열 메서드를 사용하여 웹사이트에서 데이터를 가져옵니다. HTML 텍스트에서 원하는 데이터를 검색하려면 find() 도구를 사용할 수 있습니다. 이 도구를 사용하여 웹사이트에서 제목 태그를 얻을 수 있습니다.
- 제목의 첫 번째 문자와 마지막 문자의 인덱스를 알고 있는 경우 문자열 조각을 사용하여 제목을 긁을 수 있습니다.
- 도구. find()는 첫 번째 부분 문자열 발생을 반환하고, 시작 <title> 태그의 인덱스는 문자열 " <title>을 사용하여 얻을 수 있습니다. 찾기 ().
- 관심 데이터는 <title>의 인덱스가 아니라 타이틀 인덱스입니다. 제목의 첫 글자에 대한 인덱스를 얻으려면 "<title> 문자열의 길이를 제목 인덱스에 추가할 수 있습니다.
- 이제 마지막 부분 </title>의 인덱스를 얻기 위해 "</title>" 문자열을 사용할 수 있습니다.
- 이제 제목의 첫 번째 부분과 닫는 부분을 얻었으므로 HTML 문자열을 슬라이스하여 전체 제목을 구문 분석할 수 있습니다. 이를 위한 프로그램은 다음과 같습니다.
>>> url = " http://olympus.realpython.org/profiles/poseidon "
>>> 페이지 = urlopen(url)
>>> html = page.read().decode("utf-8")
>>> start_index = html.find(“<제목>”) + len(“<제목>”)
>>> end_index = html.find(“</title>”)
>>> 제목 = html[start_index:end_index]
>>> 제목
'\n<머리>\n<제목>프로필: 포세이돈'
제목에 HTML 코드가 있는지 확인하십시오.
정규식을 사용하여 데이터 구문 분석
- 정규 표현식(regexes)은 문자열 내부의 텍스트를 검색하는 데 사용되는 패턴입니다. 정규식 파서는 re 모듈을 통해 Python에서 지원됩니다.
- 정규식 구문 분석을 시작하려면 re 모듈을 먼저 가져와야 합니다. 메타 문자라고 하는 특수 문자는 다른 패턴을 언급하기 위해 정규식에서 사용됩니다.
- 예를 들어, 특수 문자 별표(*)는 0을 나타내는 데 사용됩니다.
- findall()을 사용하여 문자열 내에서 텍스트를 검색하는 예는 아래에서 볼 수 있습니다.
>>> 다시. findall("xy*, "ac")
['악']
- 이 파이썬 프로그램에서 첫 번째 인수와 두 번째 인수는 각각 검사할 정규식과 문자열을 나타냅니다. "xy* z" 패턴은 "x"로 시작하고 "z"로 끝나는 문자열 부분과 일치합니다. 도구 재. findall()은 모든 일치 항목이 있는 목록을 반환합니다.
- "xz" 문자열은 이 패턴과 일치하므로 목록에 배치됩니다.
- 마침표(.)는 정규식에서 단일 문자를 나타내는 데 사용할 수 있습니다.
HTML 파서를 사용하여 데이터 추출
정규식은 패턴 일치에 효과적이지만 HTML 페이지를 긁어내기 위해 독점적으로 설계된 HTML 파서가 더 편리하고 빠릅니다. 이러한 목적으로 수프 라이브러리가 가장 널리 사용됩니다.
- HTML 구문 분석의 첫 번째 단계는 다음을 실행하여 아름다운 수프를 설치하는 것입니다.
$ python3 -m pip beautifulsoup4를 설치합니다.
설치 세부 정보는 Run pip를 사용하여 볼 수 있습니다. 다음은 아름다운 수프 개체를 만드는 프로그램입니다.
다시 수입
urllib.request에서 urlopen 가져오기
url = "http://olympus.realpython.org/profiles/dionysus"
페이지 = urlopen(url)
html = page.read().decode("utf-8")
패턴 = “<title.*?>.*?</title.*?>”
match_results = re.search(패턴, HTML, re.IGNORECASE)
제목 = match_results.group()
title = re.sub(“<.*?>”, “”, title) # HTML 태그 제거
인쇄(제목)
- 파이썬을 사용하여 아름다운 수프를 위한 프로그램을 실행하십시오. 프로그램은 필요한 URL을 열고 웹 페이지에서 HTML 텍스트를 문자열로 읽고 HTML 변수에 위임합니다. 결과적으로 아름다운 수프 개체가 생성되어 수프 변수에 제공됩니다.
- 아름다운 수프 개체는 두 개의 인수로 생성됩니다. 첫 번째 인수에는 스크랩할 HTML이 있고 두 번째 인수에는 "html.html" 문자열이 있습니다. parser"는 Python의 HTML 파서를 나타냅니다.
다른 웹사이트의 구성 요소와 상호 작용하여 데이터를 스크랩합니다.
"url lib" 모듈은 웹 페이지의 내용을 가져오는 데 사용됩니다. 때때로 콘텐츠가 완전히 표시되지 않고 일부 숨겨진 콘텐츠에 액세스할 수 없게 됩니다.
- Python 라이브러리에는 웹 페이지와 직접 상호 작용할 수 있는 옵션이 없습니다. 이를 위해 Mechanical Soup과 같은 타사 패키지를 사용할 수 있습니다.
- Mechanical 수프는 그래픽 UI(사용자 인터페이스)가 없는 브라우저인 헤드리스 브라우저를 설치합니다. 이 브라우저는 파이썬 프로그램으로 제어할 수 있습니다.
- Mechanical 수프를 설치하려면 다음 파이썬 프로그램을 실행하십시오.
$ python3 -m pip install MechanicalSoup
- pip 도구는 설치된 패키지의 세부 정보를 표시합니다.
웹 스크래핑의 목적
다음 목록은 웹 스크래핑이 수행되는 일반적인 목적을 보여줍니다.
- 주식 가격의 세부 정보를 스크랩하고 API 앱에 로드합니다.
- 전화번호부에서 데이터를 조달하여 리드를 생성합니다.
- 효과적인 비즈니스 위치를 식별하기 위해 매장 찾기에서 데이터를 스크랩합니다.
- 경쟁사 분석을 위해 Amazon 또는 기타 플랫폼의 제품 정보를 스크랩합니다.
- 베팅이나 오락을 위해 스포츠에 관한 데이터를 퍼내는 것.
- 시장 연구 및 조사를 위해 금융 데이터를 파싱합니다.
결론
데이터는 어디에나 있으며 풍부한 데이터가 부족하지 않습니다. 원시 데이터를 사용 가능한 형식으로 변환하는 프로세스는 시장에 새로운 기술의 출현으로 간단하고 빨라졌습니다. Python의 표준 라이브러리는 웹 스크래핑을 위한 다양한 도구를 제공하지만 PyPI에서 제공하는 도구는 프로세스를 단순화합니다. 스크래핑 데이터를 사용하여 흥미로운 과제를 많이 만들 수 있지만 웹 사이트의 개인 정보와 조건을 존중하고 엄청난 트래픽으로 서버에 과부하가 걸리지 않도록 하는 것이 특히 중요합니다.
데이터 과학에 대해 자세히 알아보려면 IIT Bangalore의 12개월 데이터 과학 이그 제 큐 티브 프로그램 과정에 참여하는 것이 좋습니다 . 여기에서 기계 학습, 통계, EDA, 분석 및 기타 중요한 알고리즘에 익숙해 질 것입니다. 데이터 처리. 60개 이상의 프로젝트, 사례 연구 및 캡스톤 프로젝트에 대한 노출을 통해 Python, SQL 및 Tableau를 포함한 4가지 프로그래밍 도구와 언어를 마스터하게 됩니다. 또한 upGrad가 40,000명 이상의 학습자 기반에 대한 액세스를 제공함으로써 학생들에게 제공하는 동료 학습의 이점을 누릴 수 있습니다.
40개 이상의 라이브 세션이 진행되는 동안 인도 최고의 데이터 과학 교수진 및 업계 전문가로부터 배우게 됩니다. 이들은 또한 360° 경력 지원 및 상담을 제공하여 선택한 최고의 회사에 배치할 수 있도록 도와줍니다.