웹 크롤링(Crawling)과 웹 스크래핑(Scraping)의 차이점
https://blog.codef.io/crawling_vs_scraping/
BeautifulSoup 공부
웹에 접근하고 문자열 데이터 속에서 필요한 데이터를 분석, 추출
# 멀티 프로세싱으로 웹 스크래핑
# https://beomi.github.io/beomi.github.io_old/
# 웹에 접근
import requests
# 파싱 : 어떤 문자열 데이터 속에서 필요한 데이터를 분석, 추출하는 방식
from bs4 import BeautifulSoup as bs
import time
# 병렬처리
from multiprocessing import Pool
def get_links(): # a tag의 주소 읽기
data = requests.get("https://beomi.github.io/beomi.github.io_old/").text
soup = bs(data, 'html.parser')
# print(soup)
my_titles = soup.select(
'h3 > a'
)
data = []
for title in my_titles:
data.append(title.get('href'))
return data
def get_content(link): # a tag에 의한 해당 사이트 문서 내용 중 일부 문자값 읽기
abs_link = 'https://beomi.github.io' + link
# print(abs_link)
req = requests.get(abs_link)
html = req.text
soup = bs(html, 'html.parser')
# 추후에 가져온 자료로 뭔가를 작업...
print(soup.select('h1')[0].text)
if __name__ == '__main__':
start_time = time.time()
# print(get_links())
# print(len(get_links()))
""" 직렬처리 : 약 3.7초
for link in get_links():
get_content(link)
"""
# 병렬 처리 : 약 1.5초
pool = Pool(processes=4)
pool.map(get_content, get_links())
print('처리시간 : {}'.format(time.time() - start_time))
Celery로 TelegramBot 알림 보내기
나만의 웹 크롤러 만들기(2): Login with Session
Django에 Social Login 붙이기: Django세팅부터 Facebook/Google 개발 설정까지
나만의 웹 크롤러 만들기(4): Django로 크롤링한 데이터 저장하기
나만의 웹 크롤러 만들기 with Requests/BeautifulSoup
Virtualenv/VirtualenvWrapper OS별 설치&이용법
Django에 Custom인증 붙이기
나만의 웹 크롤러 만들기(3): Selenium으로 무적 크롤러 만들기
[DjangoTDDStudy] #02: UnitTest 이용해 기능 테스트 하기
[DjangoTDDStudy] #00: 스터디를 시작하며
CKEditor의 라이센스와 오픈소스 라이센스
[React Native 번역]#01: 시작하기
ReactNative The Basis 번역을 끝냈습니다.
[DjangoTDDStudy] #01: 개발환경 세팅하기(Selenium / ChromeDriver)
Fabric Put 커맨드가 No Such File Exception을 반환할 때 해결법
[번역] 장고(Django)와 함께하는 Celery 첫걸음
Chrome Native Adblockr 대체하기
Ubuntu14.04에 OhMyZsh 설치
Ubuntu14.04에서 Python3기반 virtualenvwrapper 설치
Fabric for Python3 (Fabric3)
CustoMac 설치 분투기
mac OS X에서 pip virtualenvwrapper 설치 시 uninstalling six 에서 Exception 발생 시
Ubuntu14.04에서 pip로 mysqlclient 설치 실패시
Windows에서 pip로 mysqlclient 설치 실패시(python3.4/3.5)
맥에서 윈도RDP로 접속시 한영전환하기.
pip로 mysqlclient설치 중 mac os x에서 egg_info / OSError 발생시 대처방법
처리시간 : 1.5182890892028809
'python' 카테고리의 다른 글
웹 서버 구축 - CGIHTTPRequestHandler, get, post (0) | 2022.10.14 |
---|---|
웹 서버 구축 - SimpleHTTPRequestHandler (0) | 2022.10.14 |
thread - pull, process (0) | 2022.10.13 |
socket, thread - 채팅 서버와 클라이언트 (0) | 2022.10.13 |
thread - lock (빵 공장 예제) (0) | 2022.10.13 |