일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- LinkedList
- Apollo Server
- Android test
- 우분투 파이썬
- 안드로이드 테스트
- Dependency Injection
- MVVM pattern
- Apollo GraphQL
- Kotlin
- Android
- prisma
- unit test
- PYTHON
- Nexus GraphQL
- flutter
- graphQL
- ubuntu python
- 안드로이드 디자인패턴
- 안드로이드 mvp
- 웹크롤링
- 자바
- Data structure
- mvvm
- dagger-hilt
- 자바기초
- 유니티
- 파이썬 크롤링
- Design Pattern
- java
- 안드로이드
- Today
- Total
Hun's Blog
[Python] 웹 크롤링 1 - Ubuntu 18.04.3 에서 Python 3.7.4 설치 (+APM) 본문
[Python] 웹 크롤링 1 - Ubuntu 18.04.3 에서 Python 3.7.4 설치 (+APM)
jhk-im 2020. 4. 1. 20:42참고
파이썬 레시피 - 웹 활용 입문편을 공부하면서 정리한 내용
크롤링을 구현해야해서 파이썬에대해 공부를 시작했다.
위의 참고 링크에서 파이썬 입문자용 강의를 제공하고 있어서 해당 강의를 따라하면서 구현한 예제를 정리해 볼 생각이다. 먼저 예제 구현을 위해 파이썬을 셋팅한 부분부터 정리해보도록 하겠다. APM 에서 PHP와 MariaDB 는 예제에서 사용되지 않았지만 간단하게 자동설치 한 부분도 정리해 보았다.
설치환경
Ubuntu 18.04.3
Python 3.7.4
VirtualBox 6.1
Apache 2.4.29
PHP 7.2.24
Mariadb 10.1.44
VirtualBox + Ubuntu 설치
1. VirtualBox 실행
2. VirtualBox 새로가기 만들기
-> 폴더명 : TestServer -> 폴더명 지정
-> 머신 -> 기타 -> 설치경로지정
-> 버전 -> Ubuntu (64-bit) 선택
-> 다음
3. 메모리 설정
-> 2048MB -> 나중에 변경가능
-> 다음
4. 가상 머신 만들기
-> 지금 새 가상 하드 디스크 만들기 선택
-> 만들기
5. 하드 디스크 파일 종류
-> VID(VirtualBox Disk Image) -> 선택
-> 다음
6. 물리적 하드 드라이브에 저장 선택
-> 동적할당 선택
-> 다음
7. 파일 위치 및 크기
-> 파일위치 -> 변동없음
-> 하드디스크 크기 -> 50.00GB
-> 만들기
8. VirtualBox 시작 -> 시동디스크 선택 -> 시작
9. Welcom -> 한국어선택 -> Ubuntu 설치 클릭
10. 키보드레이아웃 -> 계속하기
11. 업데이트 및 기타 소프트웨어 -> 일반설치
12. 기타설정 -> 그래픽과 Wi-Fi 하드웨어 체크 -> 계속하기
13. 설치형식 -> 디스크를 지우고 Ubuntu 설치 -> 지금설치 -> 계속하기
14. 어디에 거주하고 계십니까? -> 서울 선택 -> 계속하기
15. 당신은 누구십니까? -> 사용자명과 비밀번호 셋팅
16. 설치화면 -> 설치완료 -> 지금다시시작 -> 로그인 -> 설치완료
Apache 설치
1. 우분투 루트 계정권한 설정
*초기 시스템 관리자로 root 생성 후 패스워드 설정
-> sudo passwd root
-> Enter New UNIX Password : 암호 지정
-> Reype New Nunix password : 암호 확인
-> passwd : 암호를 성공적으로 업데이트 했습니다.
2. sudo apt update && sudo apt upgrade
3. sudo apt install apache2
우분투 웹브라우저를 열고 localhost 입력하여 설치완료 화면 확인
VirtualBox-Ubuntu 고정 ip 설정
1. VirtualBox 설정 -> 네트워크 -> 어댑터2 -> 호스트전용 어댑터 -> 확인
2. 제어판 -> 네트워크 및 공유센터 -> 어댑터 설정변경 -> VirtualBox Host-Only Network 우클릭
-> 속성 -> ip 주소확인 ex) 192.168.56.1 (가상머신의 게이트웨이로 설정됨)
3. VirtualBox 파일 -> 호스트 네트워크 관리자 -> ip 확인 -> DHCP 서버 사용함 체크 해제
4. -> ubuntu 시작
-> sudo apt-get install net-tools
-> net-tools : 인터넷의 연결정보를 알아내는데 필요한 ifconfig,
포트와 통신하고 있는 프로그램을 알아내는데 필요한 netstat과 같이
ip 관리에 필요한 명령어들을 모아둔 패키지이다.
-> ifconfig -a
-> 추가된 네트워크 인터페이스를 확인 ex) enp0s3
5. -> sudo vi /etc/netplan/*.yaml
-> 고정 ip에 대한 정보를 기입하는 곳이다.
-> 띄어쓰기 제대로 안하면 오류남
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
|
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
addresses: []
dhcp4: true
enp0s8:
addresses: [192.168.56.122/24]
gateway4: 192.168.56.1
nameservers:
addresses: [8.8.8.8,8.8.4.4]
dhcp4: no
|
-> 다음과같이 입력하고 저장
-> sudo netplan apply
-> 설정내용 반영
-> ifconfig -a
-> 변동내용 확인
-> sudo /etc/init.d/apache2 restart
6. 가상머신 외부에서 브라우저 주소창에 IP:80 입력
-> index.html 뜨면 성공
*가상머신 내부에서 코드작업을 하기엔 답답한 부분이 많아서 외부 에서 atom 으로 코드를 적어 .py 파일을 만들고 winscp를 통해 가상머신으로 넘겨주는 방식으로 예제를 진행하였다.
*winscp
//설정방법
1. 우분투
-> sudo apt-get install ssh
2. winscp 실행
-> 호스트이름 ip주소 입력 / 포트번호 22
-> 사용자이름 입력 / 비밀번호 입력
-> 저장
로그인 확인
Python 설치
1.python 빌드를 위한 패키지 설치
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install libncurses5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
2. python3 설치
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
sudo tar xvfz Python-3.7.4.tgz
sudo cd Python-3.7.4
sudo ./configure
sudo make
sudo make install
python3 -V
-> 설치 버전 확인
idle-python3.7#sudo apt-get install idle-python3.7
idle-python3.7
3. Hello world! 출력
cd /var/www/html
-> index.html의 디렉토리 이동
sudo gedit hellowrld.py
1
|
print('Hello world!')
|
-> helloword.py 생성
*Apache2 로 파이썬 실행하기
1
2
|
#!/usr/bin/python3
print('Hello world!')
|
-> helloworld.py 수정
sudo chmod a+x helloworld.py
-> python 파일이 웹서버에 의해서 실행되도록 실행권한을 허용
Python cgi -> 웹브라우저에서 실행
sudo gedit /etc/apache2/sites-enabled/000-default.conf
-> 000-default.conf 파일 수정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<VirtualHost *:80>
...
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
AddHandler cgi-script .py
Options ExecCGI
</Directory>
...
</VirtualHost>
|
-> Document root(웹서버가 요청한 파일을 찾는 최상위 디렉토리)에 있는 파일 중 확장자가 py인 파일은 Python으로서 실행 되도록 한다.
-> AddHandler cgi-script .py
-> Options ExecCGI
-> 수정하고 저장
sudo a2enmod cgi
-> cgi가 동작하도록 cgi 기능을 켠다.
sudo service apache2 restart
-> 웹서버를 재시작
1
2
3
|
#!/usr/bin/python3
print('content-type:text/html; charset=UTF-8\n')
print('Hello world!')
|
-> helloworld.py 수정
*오류 발생시 오류 로그 확인
sudo tail -f /var/log/apache2/error.log
MariaDB 설치
1. sudo apt install mariadb-server
2. maria db 설정
* mysql_secure_installation
-> root 비밀번호 입력 요구 -> 비밀번호 없으므로 enter
-> Enter current password for root(enter for none): root의 비밀번호를 설정
-> Set root password? [Y/n]
-> Remove anonymous users? [Y/n]
-> Disallow root login remotely? [Y/n]
-> Remove test database and access to it? [Y/n]
-> Reload privilege tables now? [Y/n]
-> 모두 enter 눌러도 무방
3. MariaDB 접속
-> sudo mysql -uroot -p
-> 비밀번호 입력하고 접속
-> use mysql;
* 사용자 추가
mysql> create user '사용자명'@'%' identified by '비밀번호';
mysql> grant all privileges on *.* to '사용자명'@'%' with grant option;
mysql> flush privileges;
* 종속적 사용자 추가
create user '사용자명'@'%' identified by '비밀번호';
GRANT ALL privileges ON 테이블명.* TO '사용자명'@'%';
flush privileges;
-> quit;
PHP & PHP My Admin 설치
1. sudo apt install php
2. sudo apt install php-mysql -> Maria DB 를 사용할 수 있도록
3. service apache2 restart -> 아파치 재시작
4. /var/www/html 디렉토리에 phpinfo.php 파일생성
*phpinfo.php
<?php phpinfo(); ?>
5. sudo apt install phpmyadmin -> php my admin 설치
6. sudo vi /etc/apache2/apache2.conf
마지막줄에 Include /etc/phpmyadmin/apache.conf 추가
7. sudo /etc/init.d/apache2/ restart
8. 웹브라우저에서 localhost/phpmyadmin 입력
-> mysql 새로 생성한 아이디로 접속 확인
참고
https://opentutorials.org/course/3256/19932
https://somjang.tistory.com/15
https://www.manualfactory.net/10460
https://webnautes.tistory.com/1185
'Language > Python' 카테고리의 다른 글
[Python] 웹 크롤링 6 - 1 to 50 봇 (0) | 2020.04.06 |
---|---|
[Python] 웹 크롤링 5 - selenium을 활용한 유튜브 키워드 검색하기 (0) | 2020.04.06 |
[Python] 웹 크롤링 4 - 네이버 웹툰 썸네일 가져오기 (0) | 2020.04.06 |
[Python] 웹 크롤링 3 - 네이버 웹툰 제목 가져오기 (0) | 2020.04.05 |
[Python] 웹 크롤링 2 - Python BeautifulSoup4, requests 설치 + 네이버 날씨 미세먼지 가져오기 (0) | 2020.04.05 |