본문으로 바로가기

사회적 거리두는 블로그

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

    관리자
    • 블로그 이미지
      JohnWick99

      프로그래밍, 꿀팁 정보를 알려드립니다.

      링크추가
    • 글쓰기
    • 환경설정
    • 로그인
    • 로그아웃

    파이썬 크롤링 : 날짜별로 데이터 수집을 위한 날짜연산

    소개 다음 뉴스와 네이버 뉴스를 날짜별로 데이터 수집하기 위해 필요한 날짜연산에 대해 알아보겠습니다. 날짜연산 다음 날짜 파라미터입니다. regDate=20200809 네이버 날짜 파라미터 입니다. date=20200809 날짜 연산을 위해선 datetime 모듈을 이용해야 하는데요. 자세한 설명은 아래 링크를 참조해 주시구요. datetime — 기본 날짜와 시간 형 — Python 3.7.8 문서 datetime — 기본 날짜와 시간 형 소스 코드: Lib/datetime.py datetime 모듈은 날짜와 시간을 간단하거나 복잡한 방법으로 조작하는 클래스를 제공합니다. 날짜와 시간 산술이 지원되지만, 구현의 초점은 docs.python.org 하루 전의 날짜를 구하기 위해서는 다음과 같은 과정이 필..

    Crawling/Basic 2020. 8. 10. 02:58

    파이썬 다음-뉴스 댓글 크롤링 하기 -3 : 인증

    소개 지난 포스팅에 이어서 기사와 댓글을 맵핑해야겠죠. 팁으로, 다음과 같이 검색창을 활용하는 것에 대해 알아보겠습니다. 이어서 댓글 데이터를 제공해주는 API URL 을 보면 해당 부분이 ID 인 것을 직감할 수 있는데요. 이 ID 값을 검색하는 것입니다. 뉴스 기사의 ID 와 댓글의 ID 를 맵핑해주는 API 는 다음 URL 인 것을 볼 수 있습니다. 요청을 해보면 다음과 같이 401 코드가 뜨는데요. 401 코드는 인증 오류를 나타냅니다. Request Headers 에 보면 Authorization 라는 키 값을 찾을 수 있습니다. 보고있는 페이지는 클라이언트의 브라우저를 통해서 인증을 받는 것이구요. 파이썬 코드는 브라우저처럼 자동으로 해주지 않습니다. 추가해주어야 합니다. 두번에 걸쳐 요청을 ..

    Crawling/Basic 2020. 8. 9. 16:54

    파이썬 다음-뉴스 댓글 크롤링 하기 -2 : 동적인 데이터를 수집하는 방법

    소개 지난 포스팅에서 간단하게 태그에 접근해서 데이터를 추출하고, 범위를 구하는 방법을 알아보았습니다. 이번 포스팅에서는 조금 더 들어가서 자바스크립트에서 다른 경로(URL)로 호출해서 가져오는 데이터를 수 집하는 방법에 대해 알아보겠습니다. 동적인 데이터 수집하는 방법 다음과 같이 버튼을 눌렀을 때 갑자기 HTML 태그에 붙는 것을 확인하실 수 있습니다. 강조하고 싶은 것은 개발자도구의 Network 탭을 잘 활용하는 것인데요. 보고있는 페이지의 데이터들(HTML, JS, 텍스트, 이미지 등)은 Network 탭에서 확인하실 수 있구요. 현재 페이지에서 동적으로 변화하는 데이터와 같은 것들은 JS 에 의한 것입니다. 큰 웹사이트 같은 경우는 대부분 API 를 사용하여 데이터를 호출하기 때문에 API 경..

    Crawling/Basic 2020. 8. 9. 02:31

    파이썬 다음-뉴스 크롤링 하기 -1

    코딩 동영상 간단 페이지 범위 구하기 다음뉴스를 예로 들겠습니다. 전체뉴스 다음뉴스 news.daum.net 화면이 잘 보이지는 않지만 페이지 번호를 Ctrl+클릭 하면 URL 에 페이지 파라미터가 보입니다. 다음과 같이 반복하면서 페이지를 돌 수 있습니다. url = 'https://news.daum.net/breakingnews/entertain/variety?page={}' i = 0 while True: i += 1 print(f'page : {i}') res = requests.get(url.format(i), headers=headers) 코드 오늘 날짜의 연예 기사를 첫 페이지부터 끝 페이지까지 돌면서 페이지, 타이틀, URL 을 JSON 파일로 저장하는 코드입니다. CSV 혹은 JSON 파..

    Crawling/Basic 2020. 8. 7. 05:09

    파이썬 크롤링할 범위를 구하는 방법

    참고사항 해당 사이트는 크롤링이 불가합니다. 공부목적으로 수집하였음을 알려드립니다. 또한 웹 사이트마다 구조가 다르기 때문에 통용되는 방법은 아니고 하나의 예시를 보여드리고자 합니다. 카테고리 확인 예시로 "~ 용어사전 사이트" 의 용어목록 카테고리를 가져왔습니다. 첫 글자의 리스트와 4개의 카테고리가 존재합니다. Form Data 확인 "ㄱ" > "용어사전" > 첫번째 항목 선택 해당 페이지의 Request Method 는 POST 방식이고 Form Data 를 확인해보니 다음과 같은 구조를 가지고 있었습니다. "ㄱ" > "용어사전" > 끝 페이지 항목 선택 listPage 라는 키값이 1 -> 295 로 변한 것을 확인할 수 있습니다. listPage 를 1씩 증가 시켜 계속해서 호출하면 한 카테고리..

    Crawling/Basic 2020. 8. 7. 02:28

    아이피 우회하여 크롤링하기 tor / requests[socks]

    일반 내 아이피를 확인하는 사이트들 중 한 곳에 대해 요청과 응답입니다. import requests url = 'http://icanhazip.com/' res = requests.get(url) print(res.text) 57.14.131.00 패키지 설치 아이피를 우회할 때 사용하는 tor 라는 패키지를 설치합니다. sudo apt-get install tor 서비스를 확인해봅니다. sudo systemctl status tor ● tor.service - Anonymizing overlay network for TCP (multi-instance-master) Loaded: loaded (/lib/systemd/system/tor.service; enabled; vendor preset: ena..

    Crawling/Basic 2020. 8. 3. 03:21

    정규표현식으로 태그 추출하기

    문제 선수 리스트에 시세 데이터를 추출하려던 중, 다음과 같은 형태의 태그들을 만났습니다. 다음과 같이 일반적으로는 추출하지 못합니다. from bs4 import BeautifulSoup as bs with open('sample.html', 'r', encoding='utf-8') as f: text = f.read() html = bs(text, 'html.parser') items = html.find_all('div', {'class': 'tr'}) print(f'item count: {len(items)}') result = [] for item in items: bp = [t.get_text() for t in item.find_all('span', {'class': 'span_bp'})] ..

    Crawling/Basic 2020. 7. 27. 14:35

    파이썬 구글 날씨 검색기(크롤러) 만들기 : 모듈화와 핵심 팁

    모듈 설치 요청 및 응답 등의 통신을 위한 requests 모듈을 설치합니다. pip install requests (crawling_blog) PS C:\Users\Desktop\pyqt\Example\begin_for_blog\2> pip install requests Collecting requests Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB) Collecting idna=2.5 Using cached idna-2.10-py2.py3-none-any.whl (58 kB) Collecting chardet=3.0.2 Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB) Collecting ur..

    Crawling/Basic 2020. 7. 22. 17:44
    • 이전
    • 1
    • 다음

    사이드바

    반응형

    CATEGORY

    • 분류 전체보기 (246)
      • Environment (3)
        • VSCode (1)
      • Linux(2020) (3)
      • API (14)
      • Crawling (11)
        • Basic (8)
        • Data (3)
      • Language (71)
        • Python (61)
        • Javascript (7)
        • Dart (3)
      • Application (35)
        • Flutter (11)
        • Flask (9)
        • PyQt5 (15)
      • AI (5)
        • ML (4)
      • IoT (24)
        • Raspberry Pi (24)
      • OpenCV (28)
      • Bot (8)
      • Errors (9)
      • Tools (3)
      • OS(~2018) (31)
        • Server (8)
        • Window (4)
        • Linux (16)
        • Tools (3)
    • 홈으로
    • 방명록
    • 로그인
    • 로그아웃
    • 맨위로
    SKIN BY COPYCATZ COPYRIGHT 사회적 거리두는 블로그, ALL RIGHT RESERVED.
    사회적 거리두는 블로그
    블로그 이미지 JohnWick99 님의 블로그
    MENU
      CATEGORY
      • 분류 전체보기 (246)
        • Environment (3)
          • VSCode (1)
        • Linux(2020) (3)
        • API (14)
        • Crawling (11)
          • Basic (8)
          • Data (3)
        • Language (71)
          • Python (61)
          • Javascript (7)
          • Dart (3)
        • Application (35)
          • Flutter (11)
          • Flask (9)
          • PyQt5 (15)
        • AI (5)
          • ML (4)
        • IoT (24)
          • Raspberry Pi (24)
        • OpenCV (28)
        • Bot (8)
        • Errors (9)
        • Tools (3)
        • OS(~2018) (31)
          • Server (8)
          • Window (4)
          • Linux (16)
          • Tools (3)
      VISITOR 오늘 / 전체
      • 글쓰기
      • 환경설정
      • 로그인
      • 로그아웃
      • 취소

      검색

      티스토리툴바