StoryCode

Wireshark, HTTPS, 내용보기. TLS, SSL.

Chrome Browser 활용법
반응형

1) Windows 환경변수.사용자 변수에 아래 추가

변수 이름 : SSLKEYLOGFILE

변수 값 : C:\SSLKEY\log.txt

* 크롬도 Session Pri/ Pub Key 발행해서 HTTP 전문 자체 암호화 한다.

* 서버 인증서는 크롬의 Session Key 를 암호화하는 데 사용된다.

* 즉 크롬에서 나가는 암호화된 패킷을 보려면 Session Pri key 를 알면 된다. ( = SSLKEYLOGFILE )

 

2) Wireshark.Preference.Protocols.TLS.(Pre)-Master-Secret log filename

C:\SSLKEY\log.txt 입력

 

3) Wireshark 를 확인해보면 바뀌어서 보인다 .

반응형

Windows, Chrome, FF, Safari Brower DNS Cache clear

Chrome Browser 활용법
반응형

C:\>ipconfig /flushdns

 

chrome://net-internals/#dns

 

about:networking#dns

 

Safari has a hidden option to clear different caches, including DNS, from its menu bar. But first, you would need to enable Develop menu.

To do that, go to Safari menu and then open Preferences.
Then click on the Advanced tab and then check Show Develop menu in menu bar.
Now you should see a new option, Develop in Safari’s menu bar.
In that menu, select Empty Caches option to clear the browser’s cache, including any caches related to DNS.

반응형

크롬 자체 기능 개발 활용 ( 네트워크 로그 등 )

Chrome Browser 활용법
반응형

# 참조 : https://ko.androideity.com/list-chrome-urls

 

 

  • chrome : // about -모든 내부 Chrome URL을 나열합니다.
  • chrome : // accessibility -브라우저에 열려있는 각 탭에 대한 접근성 정보와 기능이 전역 적으로 켜져 있는지 여부를 표시합니다.
  • chrome : // appcache-internals -사용하는 공간을 포함하여 appcached 사이트에 대한 정보.
  • chrome : // apps / -설치된 모든 애플리케이션 (사용자 별 및 Chrome 브라우저와 함께 제공되는 애플리케이션)을 새 페이지에 나열합니다.
  • chrome : // blob-internals / -Binary Large Object (Blob)에 대한 정보
  • chrome : // bluetooth-internals / -연결된 Bluetooth 어댑터 및 장치에 대한 정보를 표시합니다. 장치가 표시되고 검색 가능한지 여부.
  • chrome : // bookmarks -브라우저의 북마크 관리자를 엽니 다.
  • chrome : // chrome / -정보 페이지를 엽니 다.
  • chrome : // chrome-urls -이 목록을 표시합니다. Chrome : // About로로드 할 수도 있습니다.
  • chrome : // components / - '크롬 크래시 서비스'또는 '페퍼 플래시'와 같은 내부 구성 요소 목록 및 각각에 대한 업데이트를 개별적으로 확인하는 옵션.
  • chrome : // conflicts / -로드 된 모든 모듈을 나열하고 충돌이 있는지 여부를 표시합니다.
  • chrome : // crashes / -충돌보고가 활성화 된 경우 최근 충돌에 대한 정보를 표시합니다.
  • chrome : // credits -브라우저에 포함 된 기술, 해당 라이선스 및 제작자
  • chrome : // device-log / -장치 관련 이벤트의 로그를 보여줍니다.
  • chrome : // devices / -Chrome에 연결된 물리적 또는 가상 장치를 나열합니다. Google 클라우드 프린트에 프린터를 추가하는 옵션.
  • chrome : // dino - '인터넷에 연결되어 있지 않습니다'오류 페이지가 표시됩니다.
  • chrome : // discards / -세션 중에 삭제 된 탭에 대한 정보. 페이지에서 개별 탭을 삭제하는 옵션입니다.
  • chrome : // download-internals -다운로드를 시작하고 응답 및 프로세스를 모니터링합니다.
  • chrome : // downloads -과거의 모든 다운로드를 나열하는 브라우저의 다운로드 관리자
  • chrome : // extensions -설치된 확장을 표시합니다.
  • chrome : // flags -브라우저에 한 번에 통합되거나 통합되지 않을 수있는 실험적 기능을 표시합니다.
  • chrome : // gcm-internals / -Google 클라우드 메시징 정보를 표시합니다.
  • chrome : // gpu -비디오 카드 및 지원되는 기능에 대한 정보 (예 : 하드웨어 가속
  • chrome : // help / -정보 페이지를 엽니 다.
  • chrome : // histograms -히스토그램 관련 정보
  • chrome : // history -검색 기록을 지우거나 과거에 열었던 페이지를 찾기 위해 검색하는 옵션이있는 검색 기록 페이지를 엽니 다.
  • chrome : // indexeddb-internals / -사용자 프로필의 IndexedDB 정보.
  • chrome : // inspect -Chrome의 페이지 또는 확장 프로그램과 같은 요소를 검사하는 옵션
  • chrome : // interventions-internals -개입 상태, 플래그, 로그 및 기타 정보를 나열합니다.
  • chrome : // invalidations / -무효화 디버그 정보 나열
  • chrome : // local-state / -기능 및 로컬 브라우저에서 활성화 여부, 상태 정보를 나열합니다.
  • chrome : // media-engagement -브라우저에서 열린 모든 사이트에 대한 미디어 참여 점수와 임계 값을 표시합니다. 점수는 사운드와 함께 비디오 자동 재생을 결정하는 데 사용됩니다.
  • chrome : // media-internals -미디어 재생시 미디어 정보 표시
  • chrome : // nacl -Chrome의 NaCl 플러그인 (Native Client)에 대한 정보
  • chrome : // net-export -네트워크 활동을 캡처하여 디스크의 파일에 저장합니다.
  • chrome : // net-internals -SPDY 연결, 소켓 또는 DNS 조회를 포함한 자세한 네트워크 및 연결 관련 정보를 표시합니다.
  • chrome : // network-error / -네트워크 오류 메시지를 표시합니다.
  • chrome : // network-errors / -Chrome에서 발생할 수있는 네트워크 오류 메시지 목록을 표시합니다.
  • 크롬 : // newtab -새 탭 페이지를 표시합니다.
  • chrome : // ntp-tiles-internals -새 탭 페이지 및 상위 사이트 기능에 타일에 대한 정보를 표시합니다.
  • chrome : // omnibox -이 페이지에 검색 주소창 입력 결과를 표시하며 검색 결과에 검색, 바로 가기 및 기록 정보를 포함합니다.
  • chrome : // password-manager-internals / -비밀번호 관리자 로그가 페이지에 나열됩니다. 페이지를 닫으면 로그가 자동으로 지워집니다.
  • chrome : // policy -현재 브라우저에서 활성화 된 모든 정책
  • chrome : // predictors -과거 활동을 기반으로 한 자동 완성 및 리소스 프리 페치 예측 자 목록
  • chrome : // print -인쇄 미리보기 페이지
  • chrome : // process-internals -프로세스 및 사이트 격리 정보, 프레임 트리.
  • chrome : // quota-internals -Chrome 프로필 디렉토리에 사용할 수있는 디스크 여유 공간, 사용량 및 할당량 세부 정보에 대한 정보
  • chrome : // safe-browsing -현재 공사중입니다. 세이프 브라우징 상태를 표시합니다.
  • chrome : // serviceworker-internals / -브라우저에 등록 된 모든 서비스 워커와 등록 취소 옵션을 나열합니다.
  • chrome : // settings -기본 Chrome 설정 페이지를 엽니 다.
  • chrome : // signin-internals -마지막 로그인 세부 정보 또는 유효성과 같은 로그인 된 계정에 대한 정보를 표시합니다.
  • chrome : // site-engagement -브라우저에서 방문한 모든 사이트에 대한 참여 점수를 표시합니다.
  • chrome : // suggestions / -모든 새 탭 페이지 제안 및 만료시기.
  • chrome : // supervised-user-internals / -활성 사용자에 대한 정보를 나열하고 관리자에게 웹 사이트 필터 및 기타 사항을 테스트 할 수있는 옵션을 제공합니다.
  • chrome : // sync-internals -활성화 된 경우 브라우저의 동기화 기능에 대한 자세한 정보.
  • chrome : // system / -시스템, 동기화, 메모리 사용량 등에 대한 JSON 정보를 나열합니다.
  • chrome : // terms -Google 크롬의 서비스 약관
  • chrome : // thumbnails / -미리보기 이미지가 있거나없는 모든 상위 사이트 URL.
  • chrome : // tracing -페이지가 정보로 채워지기 전에 녹음이 활성화되어야합니다. 그렇게하면 브라우저가 탐색 활동을 기록하기 시작합니다
  • chrome : // translate-internals / -지원되는 언어를 포함하는 번역 정보, 언어가 번역되지 않거나 항상 번역되지 않고 기록됩니다.
  • 크롬; // usb-internals -컴퓨터에 연결된 USB 장치를 추가하고 테스트합니다.
  • chrome : // user-actions / -사용자 작업 로그 (예 : 탭 닫기, 탭 변경 등.
  • chrome : // version -브라우저 버전 및 명령 줄 스위치, 사용자 에이전트, JavaScript, Flash 및 WebKit 버전, 경로 변수를 포함한 다양한 관련 정보를 표시합니다.
  • chrome : // webrtc-internals / -PeerConnection 업데이트 및 통계 데이터를 다운로드하여 덤프를 만듭니다.
  • chrome : // webrtc-logs / -최근 캡처 한 WebRTC 로그를 나열합니다.
반응형

개발자 도구

Chrome Browser 활용법
반응형

1) 크롬.개발자도구.ctrl + shift + p

2) 입력
  a) screenshot
  b) coverage.css/js.불필요한코드는붉은색
  c) fpsmeter
  d) sensor.
  e) snippet.console에서 긴javascript 실행. ctrl+enter
  f) ads.광고차단

 

반응형

크롬 개발자 툴.hover 된 Pseudo Element를 강제 hover 하기.

Chrome Browser 활용법
반응형

F12 => Elements Menu => hover element 선택 => Dock 에 Styles 바로 아래 Filter 가 있는데, Filter 우측에 .hov .cls 가 있으니 클릭. => :active 와 :hover 등 다양한 게 있으니, 이중 :hover 체크

반응형

Selenium 을 이용한 Web Crawling

Chrome Browser 활용법
반응형

Selenium이란?


Selenium은 주로 웹앱을 테스트하는데 이용하는 프레임워크다. webdriver라는 API를 통해 운영체제에 설치된 Chrome등의 브라우저를 제어하게 된다.

브라우저를 직접 동작시킨다는 것은 JavaScript를 이용해 비동기적으로 혹은 뒤늦게 불러와지는 컨텐츠들을 가져올 수 있다는 것이다. 즉, ‘눈에 보이는’ 컨텐츠라면 모두 가져올 수 있다는 뜻이다. 우리가 requests에서 사용했던 .text의 경우 브라우저에서 ‘소스보기’를 한 것과 같이 동작하여, JS등을 통해 동적으로 DOM이 변화한 이후의 HTML을 보여주지 않는다. 반면 Selenium은 실제 웹 브라우저가 동작하기 때문에 JS로 렌더링이 완료된 후의 DOM결과물에 접근이 가능하다.

어떻게 설치하나?


pip selenium package

Selenium을 설치하는 것은 기본적으로 pip를 이용한다.

pip install selenium

참고: Selenium의 버전은 자주 업데이트 되고, 브라우저의 업데이트 마다 새로운 Driver를 잡아주기 때문에 항상 최신버전을 깔아 주는 것이 좋다.

이번 튜토리얼에서는 BeautifulSoup이 설치되어있다고 가정합니다.

BeautifulSoup은 pip install bs4로 설치 가능합니다.

webdriver

Selenium은 webdriver라는 것을 통해 디바이스에 설치된 브라우저들을 제어할 수 있다. 이번 가이드에서는 Chrome을 사용해 볼 예정이다.

Chrome WebDriver

크롬을 사용하려면 로컬에 크롬이 설치되어있어야 한다.

그리고 크롬 드라이버를 다운로드 받아주자.

https://sites.google.com/a/chromium.org/chromedriver/downloads

글 작성일자인 2월 27일에는 ChromeDrive 2.27버전이 최신이며, 크롬 v54~56을 지원한다.


다운로드하면 실행파일이 나타나는데, Selenium 객체 생성시 전체 디렉토리명이 필요하다.


PhantomJS webdriver

PhantomJS는 기본적으로 WebTesting을 위해 나온 Headless Browser다.(즉, 화면이 존재하지 않는다)

하지만 JS등의 처리를 온전하게 해주며 CLI환경에서도 사용이 가능하기 때문에, 만약 CLI서버 환경에서 돌아가는 크롤러라면 PhantomJS를 사용하는 것도 방법이다.

PhantomJS는 PhantomJS Download Page에서 받을 수 있다.

Binary 자체로 제공되기 때문에, Linux를 제외한 OS에서는 외부 dependency없이 바로 실행할 수 있다.


from selenium import webdriver

from bs4 import BeautifulSoup



driver = webdriver.Chrome('chromedriver.exe')

driver.implicitly_wait(3)


#driver = webdriver.PhantomJS('c:\Users\PC1\Desktop\0000-000,Project.Dev.Repository\Dev.Python\WebCrawling\phantomjs.exe ')



driver.get('https://nid.naver.com/nidlogin.login')

driver.find_element_by_name('id').send_keys('아이디')

driver.find_element_by_name('pw').send_keys('암호')

driver.find_element_by_xpath('//*[@id="frmNIDLogin"]/fieldset/input').click()

driver.find_element_by_xpath('//*[@id="frmNIDLogin"]/fieldset/span[2]/a').click()


# Naver 페이 들어가기

driver.get('https://order.pay.naver.com/home')

html = driver.page_source

soup = BeautifulSoup(html, 'html.parser')

notices = soup.select('div.p_inr > div.p_info > a > span')


for n in notices:

    print(n.text.strip())



[ 참조 ] https://beomi.github.io/2017/02/27/HowToMakeWebCrawler-With-Selenium/


반응형

HTML Object selector 문장 쉽게 뽑기

Chrome Browser 활용법
반응형

예를 들어, 아래 네이버의 로고를 select 로 뽑고 싶을 경우

Ctrl + Shift + C 를 누른다음(혹은 로고에 마우스 오른쪽클릭 > 검사), 네이버 로고를 클릭하면, Developer 창이 뜬다.



창이 뜨면, 해당 html 이 선택되는데, 오른쪽 마우스를 클릭해서 Copy > Copy selector 를 선택하면,


#PM_ID_ct > div.header > div.special_bg > div > div.area_logo > h1 > a > span


와 같은 문장이 만들어진다.


반응형