Python을 사용한 웹 스크레이퍼(아름다운 수프) 및 Heroku에 배포 [1부]

얼마 전에 나는 Beautiful Soup(HTML 및 XML 파일에서 데이터를 추출하기 위한 Python 라이브러리)를 사용하여 웹 크롤링 프로젝트를 만들기로 결정했습니다. 제가 어떻게 했는지, 개발 과정에서 직면한 장애물과 이를 극복한 방법을 소개합니다.


우리는 개발 전반에 걸쳐 Virtual Environment, here are Windows에 설치하는 방법에 대한 지침 및 here are 이유를 사용할 것입니다.


가상 환경을 비활성화하려면 deactivate를 입력하십시오.


그런 다음 Python 프로젝트의 모든 종속 항목을 나열하기 위한 requirements.txt 파일을 생성합니다.
사례에 따라 요구 사항이 다를 수 있습니다.
requirements.txt 중요합니다! 첫 번째 시도에서 이 단계를 수행하기에는 너무 게을렀습니다... 그러나 조만간 적어도 Heroku에 밀어넣기 위해서는 수행해야 합니다.pip install -r requirements.txt는 요구 사항 목록을 설치하는 명령입니다.

이제 주어진 웹 사이트를 실제로 스크랩하는 코드를 작성하는 방법을 보여 드리겠습니다. 간단히 말해서 웹 스크래핑은 웹 사이트에서 데이터를 원하는 형식으로 추출하는 것입니다(csv 파일에 "https://www.scrapethissite.com/pages/"이라고 썼습니다).




먼저 Pythonrequests 라이브러리를 사용하여 웹 요청을 만듭니다.

아래와 같이 수신한 정보의 내용을 출력하였으며 동일한 HTML 페이지로 Chrome에서 Ctrl+U 키보드 조합을 누르거나 마우스 오른쪽 버튼을 누른 후 페이지 소스 보기를 눌러 볼 수 있습니다.


import requests
from bs4 import BeautifulSoup

link = "https://www.scrapethissite.com/pages/"
request = requests.get(link)
print(request.content)





HTML 태그에서 실제 데이터를 인출하기 위해 Beautiful Soup 라이브러리의 도움을 받을 것입니다.
.text 태그에서 <title> 가져오기:

import requests
from bs4 import BeautifulSoup

link = "https://www.scrapethissite.com/pages/"
request = requests.get(link)

soup = BeautifulSoup(request.content, "html5lib")
print(soup.title.text)



.a 태그가 있는 하이퍼링크 철회:

import requests
from bs4 import BeautifulSoup

link = "https://www.scrapethissite.com/pages/"
request = requests.get(link)

soup = BeautifulSoup(request.content, "html5lib")
print(soup.a)

.find_all() :

import requests
from bs4 import BeautifulSoup

link = "https://www.scrapethissite.com/pages/"
request = requests.get(link)

soup = BeautifulSoup(request.content, "html5lib")

for i in soup.find_all('h3'):
    print(i.text)




CSS 클래스로 검색할 수도 있습니다.find_all(class_="class_name").

import requests
from bs4 import BeautifulSoup

link = "https://www.scrapethissite.com/pages/"
request = requests.get(link)

soup = BeautifulSoup(request.content, "html5lib")

for i in soup.find_all(class_='class_name'):
    print(i.text)




경험 법칙은 웹 사이트의 소스 코드에서 데이터 조각을 찾고(Chrome의 Ctrl+F를 통해) 데이터가 포함된 태그를 사용하여 데이터를 추출하는 것입니다.


Beautiful Soup에는 많은 태그가 있으며 내 경험에 비추어 볼 때 종종 자습서 또는 게시물이 귀하의 경우에 완벽하게 적합하지 않다는 것을 알게 되었습니다. 포스트에서 그것을 읽는 것은 내가 내 발에 총을 쏘는 것처럼 들리지 않습니까? 😅 오해하지 마세요 게시물/동영상은 주제에 대한 일반적인 아이디어를 얻는 데 반드시 유용합니다. 그럼에도 불구하고 다른 상황에서 작업하는 경우 문서를 훑어보는 것이 좋습니다. 그러면 더 적절한 방법으로 문제를 해결할 수 있습니다. 게다가, 비디오 튜토리얼을 보거나 읽을 때/게시물(버전)이 변경될 가능성이 매우 높습니다. 그래서 제가 제안하고 싶은 것은 처음에는 어려워 보이는 길로 가서 다큐멘터리를 읽는 것입니다. 시간 낭비로 좌절하고 모서리를 자르려고 노력하는 것보다.
또한 스크랩한 데이터를 로컬 컴퓨터의 데이터베이스에 삽입해야 하는 경우 real python 기사를 추천합니다.
다음 부분에서는 스크래퍼를 Heroku Server에 푸시한 방법과 그곳에서 데이터베이스를 구축하는 방법을 살펴보겠습니다.

내 Git Hub 페이지https://github.com/Muxsidov/Scraper_Blog에서 소스 코드를 찾을 수 있습니다.

좋은 웹페이지 즐겨찾기