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

Lv.1 벗님 (106.♡.231.242)

2024년 4월 18일 PM 05:17 · 수정됨(04. 19. 17:09)

조회 319 공감 0

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

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

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

import requestsfrom bs4 import BeautifulSoupimport datetimeimport reimport urllib.parseimport timedef 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_encodedif __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        = "&nbsp;&nbsp;&nbsp;&nbsp;"    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)

  • 벗바리

    벗바리 Lv.1

    24.04.18 · 61.♡.56.77

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

    벗님 Lv.1 → 벗바리 작성자

    24.04.19 · 106.♡.231.242

    조금 전에 쉽게 사용하실 수 있도록 실행파일과 간단한 설명법을 올려드렸습니다. ^^
  • 벗바리

    벗바리 Lv.1 → 벗님

    24.04.19 · 61.♡.56.77

    와우 멋지십니다! 좋은 방법을 만들어주시고 공유해주셔서 감사합니다~!
  • 늙은젊은이 Lv.1

    24.04.19 · 39.♡.249.103

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

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

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

    벗님 Lv.1 → 늙은젊은이 작성자

    24.04.19 · 106.♡.231.242

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

    벗바리 Lv.1 → 벗님

    24.04.19 · 61.♡.56.77

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

댓글을 작성하려면 이 필요합니다.