코드는 https://www.py4e.com/materials
의 Sample Code ZIP을 다운 받으면 된다.
1. 준비
1-1. 먼저 트위터 계정이 있어야 한다. 나는 계정이 있었지만, 정지되어 있어서, 고객센터에 메일을 보내 정지를 풀었다.
1-2. https://developer.twitter.com/en/apps, 에서 Developer를 신청해야 한다.
1-3. 리뷰가 완료되고, 허가가 되면 앱을 만들 수 있다. 아래와 같은 곳에 값을 채워준다.
1-4. 앱이 생성되면, 디테일에서 자세한 정보를 확인할 수 있다.
1-5. Key and Tokens를 누르면 Oauth 인증에 필요한 비밀번호를 확인할 수 있다. 노출해서는 안 된다!
2. 점검 해보기
2-1. 먼저 hidden.py에서 oauth()를 정의 할 수가 있는데, 그곳에다가 우리가 앱에서 확인한 키 값을 바꿔 주어야 한다.
2-2. twrul.py는 hidden.py의 정의된 oauth를 불러와서 인증을 하는데 이용이 된다. 여기서 키 값을 이용하여 어떤 과정을 거치면 더러운 url하나가 형성이 되는데, 이게 전자서명 역할을 하게 된다.
2-3. 이러한 준비를 마치면, twtest.py에서 test를 할 수 가 있다.
이미 정의된 argument 함수에 url과 parameter를 집어 넣으면
이미 변경되어 있는 나의 앱의 키를 이용하여 인증을 하고 전자서명을 가지고 트위터와 연결한다.
argument 함수에서 트위터에 연결을 한 후, 우리가 필요한 파라미터, 여기서는 screen_name과 count를 지정하여 준다.
그러면 api가 제공하는 url 값을 얻을 수 있다.
2-4. SSL 인증은 일단 무시하며
2-5. url을 urllib으로 받아 data로 읽어 들인다. 보면 더럽다. json 형식인데, 여기서는 작동이 되는지 확인만 한 것이니 일단 넘어간다.
x-rate-limit-remaining은 확인할 필요가 있다. 남은 크롤링 횟수를 의미한다. 즉, 명령을 몇 번 내릴 수 있냐는 뜻이다.
3. 이제 원하는 데이터를 크롤링 하기 위해, twitter1.py를 이용할 것이다.
이번엔 간단하게 acct(계정)을 직접 검색할 수 있도록 input을 넣어서 바꿔 주었다.
내 계정을 검색해보니 정보가 없었다. 뭐, 활동을 안하니.
혜민스님 아이디로 검색해보니 무엇인가 떴다.
4. 이번엔 twitter2.py 를 통해 친구 리스트를 가져와 본다.
twitter1.py과 달라진 것은 아주 사소한 부분이다.
아이디를 입력하여 똑같이 url을 받아온 뒤, 그 url의 json데이터를 받아 읽어들인 후
반복문을 통해, js[json]에 있는 태그들을 읽어들인다.
여기서는 친구 목록의 json파일에 대해 각각의 친구의 [status]안의 ['text']에 대해서 가져온다.
상태 설명.
결과 나온 것은 좋은데, 왜 나 remaining이 14냐? 한번 검색했는데.
일단은 여기까지.
'2019년 혁신성장 청년인재 집중양성(빅데이터) > PYTHON 공부 - PY4E' 카테고리의 다른 글
클래스란 무엇인가 (0) | 2019.07.25 |
---|---|
PY4E: Chapter 15 Worked Example: Twspider.py (0) | 2019.07.18 |
PY4E - Chapter 15 Database, Many to many (3) (0) | 2019.07.14 |
PY4E - Chapter 15 Database (2) (0) | 2019.07.14 |
PY4E - Chapter 15 Database (1) (0) | 2019.07.13 |