CS/Python
6. 웹 크롤링
bonggang
2019. 9. 24. 01:14
파이썬을 이용해서 웹 크롤링을 하는 대표적인 방법은 정규표현식을 사용하는 것과 beautifulSoup를 사용하는 2가지로 나뉜다.
1. 정규 표현식을 사용하는 방법
import requests
import re #regular expression(정규표현식)을 사용하기 위한 라이브러리
url = ''
res = requests.get(url)
html = res.text
pattern = r'정규표현식'
find_url = re.findall(pattern, html)
본 코드를 기본 모델로 자신에게 맞는 url과 정규표현식 부분을 입력해서 사용하면 된다.
fine_url에 내가 작성한 정규표현식에 match 되는 모든 값들이 리스트로 저장된다.
정규식을 이용해 문자열을 검색할 때는 다음과 같은 메소드를 사용한다.
Method | Contents |
match() | 문자열 처음부터 정규식과 매치되는 것을 확인 |
search() | 문자열 전체를 검색하여 정규식과 매치 확인 |
findall() | 정규식과 매치되는 모든 문자열을 리스트로 반환 |
finditer() | 정규식과 매치되는 모든 문자열을 반복 가능한 객체로 반환 |
2. beautifulSoup을 사용하는 방법
import requests
from bs4 import BeautifulSoup
url = ''
req = requests.get(url)
html = req.text
soup = BeautifulSoup(html, 'html.parser')
names = soup.select('태그')
정규표현식과 마찬가지로 본 코드 역시 자신에게 맞는 url과 select 태그 부분을 입력해서 사용하면 된다.
names에 내가 요청한 태그에 match 되는 모든 값들이 저장된다.
+ urlopen
웹 크롤링을 통해 정보를 가져오는 것 뿐 아니라 url을 열어야할 경우(예를 들면 다운로드?) 아래와 같이 하면 된다.
import urllib
url = ''
resource = urllib.request.urlopen(url) #urlopen
#file download
output = open('저장 경로', "wb")
output.write(resource.read())
output.close()