본문 바로가기

python

웹 크롤링 - 미완성

 

웹 크롤링(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