일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 텐서플로우
- MSSQL
- oracle
- 윈도우10
- c#
- sql developer
- 파이썬
- MX Component
- scrapy
- M2M
- 장고
- matplot
- 자본주의
- 오라클
- MEAN Stack
- 딥러닝
- windows10
- 크롤링
- pymssql
- MSSQL PYTHON
- Serial
- rs422
- rs485
- vscode
- PYTHON MSSQL
- 티스토리 초대장
- Python
- django
- Visual Studio Code
- tensorflow
- Today
- Total
안까먹을라고 쓰는 블로그
파이썬을 이용한 웹 크롤링(Web Crawling) 어플리케이션 만들기 본문
리눅스의 기본적인 업데이트 명령어
sudo apt-get update
컴파일러(gcc, make) 등의 라이브러리 설치 명령어
sudo apt-get install build-essential
Python 버전확인 (리눅스에는 기본적으로 파이썬이 설치가 되어있다)
python -V
Python 설치 명령어
sudo apt-get -y install python-dev
python에서 사용하는 pip 설치 명령어
sudo apt-get install python-pip
■ 가상환경 설정하기
virtualenv 가상환경 사용관련 패키지 설치
sudo pip install virtualenv virtualenvwrapper
virtualenv 환경설정
vi .bashrc 에서, 가장 아래 쪽에 아래의 두줄을 추가
export WORKON_HOME=$HOME/,virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
virtualenv 실행 명령어
source .bashrc
가상환경 만들기
mkvirtualenv "가상환경이름"
"importerror: no modue named zipp" 이런 에러가 표시되어,
아래 명령 실행 후 다시, 위의 "virtualenv 가상환경 사용관련 패키지 설치" 부터 순서대로 다시 해보니깐
정상적으로 "가상환경 만들기" 성공
pip install zipp
pip install --upgrade pip
가상환경 종료하기
deactivate
가상환경 실행하기
workon "가상환경이름"
■ Beautifulsoup 설치
- html 문서에서 원하는 정보를 손쉽게 가져올 수 있는 방법을 제공
- 자동으로 인코딩을 유니코드로 변환해서 UTF-8로 출력
- lxml, html5lib 파서를 이용함.
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
추가 라이브러리 설치
sudo apt-get install libxml2-dev libxslt1-dev python-dev zlibl1g-dev
sudo apt-get install python-lxml
pip install lxml
beautifulsoup 4버전 설치
pip install beautifulsoup4
■ Scrapy 설치
- WEB Scraper Framwork
- 다양한 selector 지원, 파이프라인, 로깅, 이메일
https://docs.scrapy.org/en/latest/
추가 라이브러리 설치
sudo apt-get install libffi-dev libssl-dev
Scrapy 설치
pip install scrapy
Scrapy 프로젝트 시작
srapy startproject "프로젝트 이름"
Linux Server의 파일을 Visual Studio Code로 ftp연결로 수정가능하도록 설정
https://overit.tistory.com/entry/Linux-Ubuntu-ftp-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
Scrapy 구조
- items.py
- 게시물에 대한 제목, url, 저작자 등을 작성한다.
- spiders - 데이터를 크롤링한다.
1. 크롤러의 이름 지정
- name
2. 스타트 url 지정
- start_urls - 시작주소를 리스트 형태로 추가가능, 로그인이 필요한 경우 로그인 정보추가
- start_request - 콜백함수를 지정할 수 있음, 사이트에 로그인을 할때 사용
3. 파서 정의
- def parse(delf, reponse):
- pipelines.py
1. 데이터를 크롤링 한 이후에 특정 행동을 수행
- 데이터의 유효성 검사
- 중복 체크
- 데이터베이스에 아이템 저장
- 필터링
2. settings.py
- 파이프 클래스 및 순서를 지정
- settings.py
- Scrapy에 필요한 전체적인 설정파일을 설정한다.
- Logging
- settings.py
- LOG_FILE = 'logfile.log'
- LOG_LEVEL = logging.DEBUG
- Log Level
1. logging.CRITICAL (for critical errors(hihest severity))
2 logging.ERROR (for regular errors)
3. logging.WARNING (for warning messages)
4. logging.INFO (for informational messages)
5. logging.DEBUG (for debugging messages (lowest severity))
Scrapy 동작
1. item 정의 (items.py)
2. 스타트 url 지정 (start_request, start_urls), callback 함수지정(parse())
3. callback 함수 정의
- selector(xpath, css)를 이용하여, 데이터를 선택
4. pipeline을 이용하여 데이터를 필터링 하거나 데이터베이스에 저장
Crontab
리눅스의 기본 서비스로 정해진 시간에 정해진 스크립트를 시작할 수 있다.
- /etc/crontab 편집을 통해 사용가능
sudo vi /etc/crontab
- 설정가능 항목
- 실행확인
greb CRON /var/log/syslog
로봇배제표준 (robots.txt)
- 웹 사이트에 로봇이 접근하는 것을 방지하기 위한 규약
naver.com/robots.txt 형식으로 접근
'Language > Python' 카테고리의 다른 글
[DJango] 기초 튜토리얼 (feat, Visual Studio Code) (1) | 2020.03.30 |
---|---|
[Scrapy] Selector (0) | 2020.03.13 |
[Python] Django 해보자 (feat. Visual Studio Code) (0) | 2020.03.02 |
[조코딩] 완전 쉽게 파이썬으로 텍스트 및 이미지 크롤링하기 | 완성형 서비스 만들기 1강 (0) | 2020.02.09 |
[혼자 공부하는 파이썬] 02-3 변수와 입력 (0) | 2019.12.08 |