you are using pip version ( ) however version () is available.
you should consider upgrading via the 'pip install --upgrade pip' command
설명대로 'pip install --upgrade pip'을 하였는데, Traceback 에러와 함께 모듈을 찾을 수 없다는 에러가 발생했다.
ModuleNotFoundError: No module named 'pip._internal'
pip를 다시 설치하려는데, cmd에서 python 명령어를 읽지 않기 시작했다........
해결 방법)
내컴퓨터에서 고급시스템 설정 -> 환경변수 -> 시스템변수의 path에 python 경로를 다시 추가하였다. (CMD가 python 명령어를 다시 읽기 시작함!!)
cmd를 통한 pip 재설치 방법
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
주의 사항)
오류의 원인)
(크롬 주소창에 chrome://version 을 치면, 현재 내 버전이 나온다.)
크롬드라이버 다운로드: https://sites.google.com/a/chromium.org/chromedriver/downloads
예시 코드)
from selenium import webdriver
driver = webdriver.Chrome('c:/chromedriver.exe')
url = 'https://www.naver.com'
driver.get(url)
1) 페이지에서 하나의 요소 찾기
driver.find_element(By.ID, "id_name")
2) 구체적인 요소 찾기
(장점: 속도가 빨라짐, 두개의 아이디 값을 한번에 받을 수 있음)
var = driver.find_element_by_css_selector("#id_name #id_name2)
3) 여러 요소 찾기.
<예시 html>
<ol id=cheese>
<li id=cheddar>…
<li id=brie>…
<li id=rochefort>…
<li id=camembert>…
</ul>
var = driver.find_element_by_css_selector("#cheese li")
기본 코드
var = driver.find_element_by_((select))(id_name)
select부분은 find_element_by를 활용하여 어떤방식으로 요소를 찾아올지 선택하는 부분이다. (위의 예시는 css선택자를 쓴 것)
오늘은 쉽게 사용할 수 있는 xpath를 활용하여 크롤링을 진행하였다.
xpath: W3C의 표준으로 XML(Extensible Markup Language)문서의 구조를 통해 경로(path)위에 지정한 구문을 사용
간단한 요약
/ : 절대경로를 나타냄
// : 문서내에서 검색
//@href : href 속성이 있는 모든 태그 선택
//a[@href='http://google.com'] : a 태그의 href 속성에 http://google.com 속성값을 가진 모든 태그 선택
(//a)[3] : 문서의 세 번째 링크 선택
(//table)[last()] : 문서의 마지막 테이블 선택
(//a)[position() < 3] : 문서의 처음 두 링크 선택
//table/tr/ 모든 테이블에서 모든 자식 tr 태그 선택
//div[@] 속성이 하나라도 있는 div 태그 선택
driver.find_element(s)_by element로 하면 해당하는 태그 한개만 가지고 온다. 여러개의 태그를 선택하려면 elements를 해야 된다.
word_ready.split(" ")[0] : word_ready 리스트를 띄어쓰기를 기준으로 나누고, 첫번째 요소를 반환하라.
list(set(ready_list_1)) : ready_list_1에서 중복되는 요소를 제거하고 리스트 형식으로 반환해 주세요.
word_result.sort() : 오름차순으로 정렬 하기
f=open("C:/file.txt",'w')
for i in list_obj:
f.write(i)
f.close()