selenium을 통해서 self.browser.get(url) 하고서 self.browser.page_source 를 해줬는데.. 원하는 페이지의 내용이 아니다..? 왜그런 것일까 나는 막연히 get(url) 메소드가 블락킹 메소드겠거니.. 했다. 근데 생각해보니 ajax로 로딩되는 놈은 page가 loaded 된 이후에도 계속해서 동적으로 로딩 된다는 사실.. 즉 블락킹 메소드고 뭐고를 떠나서 아직 동적으로 그려지지 않았을 수 도 있다! 그럼 어떻게 해야하는가? selenium wait으로 검색하면 몇가지 방법이 나온다. http://selenium-python.readthedocs.io/waits.html 를 참고하면 좋다. 크롤링을 원하는 태그가 나올때까지 wait 하는 기능이다. 유후 오늘 열라..
이번에는 간단한 restful server를 만들어서, 입력된 tag의 갯수를 화면에 표시해주는 프로그램을 짜보자 일단 flask를 설치하고 (pip install flask) 기본 경로 옆에 templates라는 폴더를 만들고 그 안에 hello.html 을 만들어서 아래와 같은 내용으로 채운다 {{count}} 위의 {{count}} 부분에 tag 갯수를 표시해 줄 것이다. 이제 이전편에 짠 파서를 이용해서 아래와 같은 코드를 작성하자 from flask import Flask, render_template, request from bs4 import BeautifulSoup import selenium.webdriver as webdriver app = Flask(__name__) @app.rout..
Python의 Django를 이용해서 간단한 웹서버를 만들어보자 0. 장고 설치 pip install django 1. 프로젝트 폴더 생성 django-admin startproject get_tag_count 우선 프로젝트를 시작할 폴더로 이동한 다음 위처럼 입력해서 get_tag_count 라는 프로젝트를 생성하자. 2. 브라우저 접속 테스트 생성된 프로젝트 폴더 안으로 들어가서 아래와 같이 입력해보자 python manage.py runserver 그러면 서버가 실행된다. 이제 인터넷 브라우저를 이용해서 http://127.0.0.1:8000 으로 들어가보자 위 페이지가 떴으면 성공한것임. 이제부터 하나하나 수정해가면 나만의 멋진 웹서버를 개발 할 수 있다.
저번편에 이어서 Instagram 크롤링을 계속 해보자 먼저 할 일은 chrome process를 hidden으로 실행하는 것. 이것에 대한 정보는 거진 https://beomi.github.io/2017/01/20/HowToMakeWebCrawler/ 에서 다 얻어왔다. 아주 단순하다. chromedriver의 attribute에 headless를 추가하면 끝. 거기다가 span 태그를 통해 읽어온 '태그 갯수'에서 text만 추출하는 코드를 추가했다. from bs4 import BeautifulSoup import selenium.webdriver as webdriver url = "https://www.instagram.com/explore/tags/jmt/" options = webdriver...
파이썬을 이용해서 Instagram의 해쉬태그 갯수를 읽어와보자. 글은 의식의 흐름에따라 작성한다. 일단 기본적으로 사용할 놈들 1. requests 2. beautiful soup4 따라서 이놈들의 설치를 위해 pip install beautifulsoup4 pip install requests 를 하자 그리고 가장 기본적으로 웹페이지의 태그를 긁어와보자! import requests from bs4 import BeautifulSoup def get_html(url): _html = "" resp = requests.get(url) if resp.status_code == 200: _html = resp.text return _html url = "https://www.instagram.com/exp..
리스트 a = ['a','b','c'] a.insert(2,d) : 2번째 인덱스에 d를 추가한다. a = [a,b,d,c] a.pop() : 제일 끝의 원소인 c을 반환 후 리스트에서 삭제 한다. a.pop(index) : index 원소를 반환하고 삭제한다. a.remove('b') : 'b'를 찾아서 삭제한다. del a[1] : 1번째 원소를 삭제하다. a.index('b') : 'b' 원소의 인덱스를 반환한다. 여러개 있을 경우 앞에 있는 인덱스를 반환. a.append('f') : 제일 끝에 요소 추가 리스트 값 수정 a[1:2] = [1,2,3] 하면 a = ['a',1,2,3,'b','c'] 이렇게 되고 (연속된 범위 수정) a[1] = [1,2,3] 하면 a = ['a',[1,2,3],'..
풀이는 여기저기 많으니까.. 하나 하나 풀 때마다 하나씩 적겠음 2011년 2월 8일 0번 문제의 url : http://www.pythonchallenge.com/pc/def/0.html level0 : 274877906944 level1 : ocr level2 : equality level3 : linkedlist level4 : peak 2011년 2월 9일 level5 : channel 아오 플젝이 바빠져서 당분간 쉬어야겠다 ~_~ 빨리 끝내고 다시 시작해야지
- Total
- Today
- Yesterday
- API
- android
- C
- kering
- Visual C++
- gcc
- it
- winapi
- 음악
- 프로그래밍
- linux
- java
- C++
- 리눅스
- Troubleshooting
- 드라이버
- 안드로이드
- database
- jni강좌
- jni
- source
- NDK
- db
- driver
- Quiz
- AWS
- Cloud
- MFC
- algorithm
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |