'민주당 내 XX들 명단' 시리즈 글을 작성할 때 만들어서 활용하던 python 소스 입니다.

페이지 정보

57 조회
6 댓글
2 추천

본문

'민주당 내 XX들 명단' 시리즈 글을 작성할 때 만들어서 활용하던 python 소스 입니다.

chatGPT를 통해 기본틀을 어느 정도 만들었고, 그 후에 아주 초끔만 다듬었습니다.

keywords , yesterday, today 만 살펴보시면 활용하실 수 있을 겁니다.

 

import requests
from bs4 import BeautifulSoup
import datetime
import re
import urllib.parse
import time

def korean_to_url(input_text):
    # Encode the input text in UTF-8
    utf8_bytes = input_text.encode("utf-8")

    # Convert the UTF-8 bytes to URL-encoded format
    url_encoded = urllib.parse.quote(utf8_bytes)

    return url_encoded

if __name__ == "__main__":

    # search keyword
    keywords = "이원욱,조응천,김종민,이낙연,오영환,이상민,설훈,홍영표,박용진,송갑석"

    keywords_list = keywords.split(",")
    today         = datetime.datetime.now()
    yesterday     = today - datetime.timedelta(days=2)
    today         = today - datetime.timedelta(days=0)

    start_date    = yesterday.strftime("%Y.%m.%d")
    end_date      = today.strftime("%Y.%m.%d")
    space4        = "    "

    start_date_d  = yesterday.strftime("%Y.%m.%d").replace(".","")
    end_date_d    = today.strftime("%Y.%m.%d").replace(".","")

    with open("view_" + str(start_date.replace(".","_")) + ".html", "w", encoding="utf-8") as file:

        print("\n" + "START naver search")
        for keyword in keywords_list:
            file.write("> " + keyword + " (naver) <br>")
            file.write(space4 + "---------------------------------------<br>")

            print("---->" + keyword)
            url_encoded_text = korean_to_url(keyword)

            url = f"https://search.naver.com/search.naver?where=news&sm=tab_pge&query={url_encoded_text}&field=0&pd=1&ds={start_date_d}&de={end_date_d}&mynews=0&office_type=0&office_section_code=0&news_office_checked=&office_category=0&service_area=0&nso=so:dd,p:1w,a:all&start=11"

            response = requests.get(url)
            soup     = BeautifulSoup(response.text, "html.parser")
            for result in soup.select(".news_tit"):
                link = str(result)
                file.write(space4 + link + "<br>")

            # file.write(space4 + "---------------------------------------")
            # file.write("<br><br>")

            time.sleep(0.1)

        file.write("<br><br>")
        file.write(space4 + "=========================================")
        file.write("<br><br>")
        print("END naver search" + "\n")

        print("\n" + "START daum search")
        for keyword in keywords_list:
            file.write("> " + keyword + " (daum) <br>")
            file.write(space4 + "---------------------------------------<br>")

            print("---->" + keyword)
            url_encoded_text = korean_to_url(keyword)

            url = f"https://search.daum.net/search?DA=STC&cluster=y&cluster_page=1&ed=&enc=utf8&nil_search=btn&period=w&q={keyword}&sd=&w=news&sort=recency"

            response = requests.get(url)
            soup     = BeautifulSoup(response.text, "html.parser")
            for result in soup.select(".item-title"):
                link = str(result)
                file.write(space4 + link)

            url = f"https://search.daum.net/search?w=news&nil_search=btn&DA=STC&enc=utf8&cluster=y&cluster_page=2&q={keyword}&sd={start_date}010100&ed={end_date}125959&period=w"

            response = requests.get(url)
            soup     = BeautifulSoup(response.text, "html.parser")
            for result in soup.select(".tit_main fn_tit_u"):
                link = str(result)
                file.write(space4 + link + "<br>")

            url = f"https://search.daum.net/search?w=news&nil_search=btn&DA=STC&enc=utf8&cluster=y&cluster_page=3&q={keyword}&sd={start_date}010100&ed={end_date}125959&period=w"

            response = requests.get(url)
            soup     = BeautifulSoup(response.text, "html.parser")
            for result in soup.select(".tit_main fn_tit_u"):
                link = str(result)
                file.write(space4 + link + "<br>")

            url = f"https://search.daum.net/search?w=news&nil_search=btn&DA=STC&enc=utf8&cluster=y&cluster_page=4&q={keyword}&sd={start_date}010100&ed={end_date}125959&period=w"

            response = requests.get(url)
            soup     = BeautifulSoup(response.text, "html.parser")
            for result in soup.select(".tit_main fn_tit_u"):
                link = str(result)
                file.write(space4 + link + "<br>")

            file.write(space4 + "---------------------------------------")
            file.write("<br><br>")

            time.sleep(0.1)

        file.write("<br><br>")
        file.write(space4 + "=========================================")
        file.write("<br><br>")
        print("END daum search" + "\n")

 

 

끝.

 

댓글 6

벗바리님의 댓글

저는 개발자가 아니라서 잘 모르겠지만, 아마도 네이버, 다음과 같은 포탈 뉴스에서 키워드(특정 인물의 이름)가 포함된 기사를 모아주는 그런 코드를 짜신게 아닌가 싶습니다. 고생해서 알려주셨는데(감사합니다!), 파이썬을 배워본 적이 없는지라 활용할 능력이 없네요 ㅠ.ㅠ

늙은젊은이님의 댓글

오~~~
내용은 한개도 모르겠꼬 ㅋㅋㅋ
벗님도 여기 오셨네용~

게시판에 올려주시는 글 항상 감사하게 보고 있습니다 (물로 정독은 다 못합니다 ㅋ)

여기에도 박제 시켜놓으시면 자주 들러서 읽어 보겠습니다.

벗님님의 댓글의 댓글

아직 다음 국회도 열리지 않았고 해서.. 지금은 룰루랄라 하며 지내고 있습니다.
'여기가 아주 한가했으면' 하는 바람이긴 합니다.  ^^

벗바리님의 댓글의 댓글

지켜보는 게시물은 많이 안늘면 좋긴한데(악의 무리들은 꼼꼼해서 그러긴 쉽지 않겠지만 ㅎㅎ) 잡담은 좀 많이 늘었으면 좋겠습니다 ^^
전체 34 / 1 페이지
전체 검색