https://bumcrush.tistory.com/116

 

크롤링을 하다보니 "태그위치 달라지는" 날짜를 얻어오는 것에 대해 방법을 찾다가 위의 글을 찾게 되었습니다.


<크롤링 할 내용>

  • 1. 기사 - title

  • 2. 신문사 - newspaper

  • 3. 날짜 - date

  • 4. 내용 요약 - content

  • 5. 링크 - link

 

1. 크롤링을 위한 라이브러리 

    설치 방법

        외부 라이브러리

        1) Beautifulsoup - 태그 접근 

            CMD - 'python -m pip install bs4' 입력 ('제외)

         

        2) pandas (엑셀로 저장할 때) or python-docx(워드로 저장)

            CMD - 'python -m pip install pandas'

            CMD - 'python -m pip install python-docx'

         

        내부 라이브러리

        1) datetime - 저장파일을 시간으로 저장하기 위해서

 

        2) requests - 웹 요청

 

        3) re - 정규식

         

2. 크롤링을 하려면 html 태그를 알아야하며, 태그의 속성 (href, class, title...) 같은 속성이 필요

    크롬도구(F12) -> 빨간 네모 부분 클릭 -> 가져올 기사 Title에 포커스를 두고 클릭 -> 해당하는 부분이 바로 찾아짐

 

3. html 코드는 아래 처럼 많은 태그들로 이루어 져있고, 아래의 a 태그에는 href, target, class 등과 같은 속성과 strong 태그도 존재

<a href="https://www.zdnet.co.kr/view/?no=20200526125336"
	target="_blank" 
    class=" _sp_each_title" 
    onclick="return goOtherCR(this, 'a=nws*a.tit&amp;r=1&amp;i=8800011E_000000000000000002189487&amp;g=092.0002189487&amp;u='+urlencode(this.href));" 
    title="유아이패스, 27일 RPA 세미나 개최">
    유아이패스, 27일 
	<strong class="hl">RPA</strong> 
	세미나 개최
</a>

 

4. 검색 파라미터 url 분석

#1일 이내 (현재시간으로부터)
https://search.naver.com/search.naver?&where=news
&query=RPA
&sm=tab_pge
&sort=1
&photo=0
&field=0
&reporter_article=
&pd=4
&ds=2020.05.26.13.23
&de=2020.05.27.13.23
&docid=
&nso=so:dd,p:1d,a:all
&mynews=0
&start=1
&refresh_start=0

#1주일 
https://search.naver.com/search.naver?&where=news
&query=RPA
&sm=tab_pge
&sort=1
&photo=0
&field=0
&reporter_article=
&pd=1
&ds=2020.05.20
&de=2020.05.27
&docid=
&nso=so:dd,p:1w,a:all
&mynews=0
&start=1
&refresh_start=0

필터를 넣어서 검색을 해보면 위와 같은 url을 볼 수 있다.

특징을 살펴보자.

 

  1. &query= "검색값"
  2. &sm="tab_pge" 이 값은 검색했을 때 "tab_opt"로 나오고, 페이지를 한번 2페이지로 옴겼다가 1페이지로 돌아오면 됨
  3. &sort="정렬 방식" 1일 때 최신순
  4. &pd= "period"의 pd로 생각 된다.
  5. 필터를 조절하며, 값을 다르게 주었더니 다음과 같은 결과를 얻었다.
&pd =
  1. '1일 이내'='4',
  2. '1주이내'='1',
  3. '1개월 이내' = '2',
  4. '6개월 이내' = '6',
  5. '1년 이내' = '5',
  6. '선택기간' = '3' 

&ds=  기간이며, 1일 이내의 시간에 대해서는 2020.05.27.'tt'.'mm' 으로 표시되며, 기준은 현재시간

 

 

 

 

 

 

 

 

 

 

 

'Python' 카테고리의 다른 글

[python] 파이썬 네이버 크롤링 하여 csv 파일로  (0) 2020.05.25