Selenium

Javascript를 많이 사용하는 웹 사이트는 웹 브라우저를 사용하지 않으면 제대로 동작하지 않아 Requsest 모듈로 대처할 수 없다.

그래서 웹 브라우저를 원격을 조작할 수 있는 도구 Selenium을 사용한다.

  • 자동으로 URL을 열고 클릭할 수 있다
  • 스크롤하거나, 문자를 입력할 수 있다
  • 화면을 캡처해서 이미지로 저장하거나 HTML의 특정 부분을 꺼내는 것도 가능하다
  • 여러 다양한 조작을 자동화할 수 있다
  • 다양한 웹 브라우저에 대응한다
Read more »

HTTP 통신

웹 브라우저와 웹 서버는 HTTP라는 통신규약(프로토콜)을 사용해서 통신한다.

브라우저에서 서버로 요청(request), 서버에서 브라우저로 응답(response)할 때 어떻게 할지를 나타낸 규약이다.


쿠키

무상태(stateless) HTTP 통신으로는 회원제 사이트를 만들 수 없다.(stateless : 이전에 어떤 데이터를 가져갔는지 등에 대한 정보(상태 : state)를 전혀 저장하지 않는 통신)

방문하는 사람의 컴퓨터에 일시적으로 데이터를 저장하는 기능

하지만 1개의 쿠키4096byte의 데이터 크기 제한이 있다.
또한 쿠키HTTP 통신 헤더를 통해 읽고 쓸 수 있다. 따라서 방문자 혹은 확인자가 원하는 대로 변경할 수 있다.
하지만 위의 말대로 쉽게 변경이 가능하기에 비밀번호 등의 비밀 정보는 세션을 통해 다뤄진다.
새션쿠키를 사용해 데이터를 저장하는 점은 같다. 하지만, 방문자 고유 ID만을 저장하고, 실제로 모든 데이터는 웹 서버에 저장하므로 쿠키와는 다르게 저장할 수 있는 데이터에 제한이 없다.

Read more »

새로운 파이썬 파일에 bs4 추가하기(PyCharm)

pycharm-1
pycharm-2
bs4를 검색하여 찾은 후 install한다.


HTML 구조 확인하기

크롬에서 Ctrl+Shift+i키를 눌러서 개발자 도구를 열어서 확인할 수 있다.
element
개발자 도구 팝업 메뉴에서 Copy > Copy selector을 사용하면 선택한 요소의 CSS 선택자가 클립보드에 복사된다.

Read more »

첫 업로드

1
2
3
4
5
6
$ git init
$ git remote add origin https://github.com/Zerohertz/Hexo_Blog.git (github의 주소)
$ git add .
$ git remote -v (확인)
$ git commit -m "내용" (주석)
$ git push origin master

수정, 추가 업로드

1
2
3
$ git add .
$ git commit -m "내용"
$ git push origin master

DOM 요소의 속성 추출

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Users\OHG>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from bs4 import BeautifulSoup
>>> soup=BeautifulSoup(
... "<p><a href='a.html'>test</a></p>",
... "html.parser")
>>> soup.prettify()
'<p>\n <a href="a.html">\n test\n </a>\n</p>'
>>> a=soup.p.a
>>> type(a.attrs)
<class 'dict'>
>>> 'href' in a.attrs
True
>>> a['href']
'a.html'
Read more »