반응형

<참조> https://arsenic.readthedocs.io/en/latest/tutorials/helloworld.html?highlight=download

비동기 크롤러 Arsenic 아서닉 예제

Arsenic 설치와 구글에서 고양이 이미지를 검색하는 예제를 다룹니다. 웹 드라어비는 파이어팍스용 geckodriver를 이용합니다. 

 

[실행 결과]

 

준비

이 예제는 Python 3.6 Firefox 웹브라우저가 설치되었다고 가정하고 진행합니다.

그리고 파이어팍스 웹브라저를 지원하는 geckodriver가 필요합니다.

다운로드 사이트: releases page.

 

다운로드한 파일을 여러분이 사용할 폴더에 압축 해제합니다. OS X 또는 Linux에서는 파일 속성을 실행 가능하도록 설정해야 합니다(chmod +x geckodriver)

가상환경 만들기

현재 환경에서 프로젝트를 구성해도 좋지만 arsenic을 위한 프로젝트 환경을 따로 구성하는 것을 권장합니다.

다음처럼 가상환경을 만듭니다(python3.6). 아마도 파이썬 버전은 python 3.9까지는 적용할 수 있을 것으로 생각합니다. 

python3.6 -m venv env

pip 업데이트를 합니다. 윈도우와 같은 개발 환경에 따라 pip 명령은 사용법은 다를 수 있습니다.

env/bin/pip install --upgrade pip

arsenic 크롤러를 설치합니다.

env/bin/pip install --pre arsenic

 

예제 코드  (cats.py)   

import asyncio
import sys
from arsenic import get_session, keys, browsers, services
if sys.platform.startswith('win'):
    GECKODRIVER = './geckodriver.exe'
else:
    GECKODRIVER = './geckodriver'
async def hello_world():
    service = services.Geckodriver(binary=GECKODRIVER)
    browser = browsers.Firefox()
    async with get_session(service, browser) as session:
        await session.get('https://images.google.com/')
        search_box = await session.wait_for_element(5, 'input[name=q]')
        await search_box.send_keys('Cats')
        await search_box.send_keys(keys.ENTER)
        await asyncio.sleep(10)
def main():
    loop = asyncio.get_event_loop()
    loop.run_until_complete(hello_world())
if __name__ == '__main__':
    main()

 

실행:

python cats.py

 

 

반응형

+ Recent posts