반응형
<참조> 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
반응형
'웹 크롤링, 스크래핑' 카테고리의 다른 글
크롬 웹 드라이버 로그 옵션 (0) | 2022.08.02 |
---|---|
파이썬, 크롬 웹 드라이버 크롤링 숨기기 (0) | 2022.08.02 |
파이썬, 비동기 크롤러 arsenic 공식 레퍼런스 (0) | 2022.08.02 |
파이썬, Scrapy 스크래피 공식 레퍼런스 (0) | 2022.08.01 |
파이썬, Scrapy 크롤링 예제 (0) | 2022.08.01 |