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

알림
|
X

페이지 정보

작성자 no_profile 벗님 106.♡.231.242
작성일 2024.04.18 17:17
분류 잡담한당
148 조회
2 추천
쓰기 분류

본문

별점:
평가 없음

'민주당 내 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")

끝.

0
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
댓글 6

벗바리님의 댓글

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

벗님님의 댓글의 댓글

대댓글 작성자 no_profile 벗님 (106.♡.231.242)
작성일 04.19 10:33
@벗바리님에게 답글 조금 전에 쉽게 사용하실 수 있도록 실행파일과 간단한 설명법을 올려드렸습니다. ^^

벗바리님의 댓글의 댓글

대댓글 작성자 벗바리 (61.♡.56.77)
작성일 04.19 17:08
@벗님님에게 답글 와우 멋지십니다! 좋은 방법을 만들어주시고 공유해주셔서 감사합니다~!

늙은젊은이님의 댓글

작성자 no_profile 늙은젊은이 (39.♡.249.103)
작성일 04.19 09:49
별점:
평가 없음
오~~~
내용은 한개도 모르겠꼬 ㅋㅋㅋ
벗님도 여기 오셨네용~

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

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

벗님님의 댓글의 댓글

대댓글 작성자 no_profile 벗님 (106.♡.231.242)
작성일 04.19 10:34
@늙은젊은이님에게 답글 아직 다음 국회도 열리지 않았고 해서.. 지금은 룰루랄라 하며 지내고 있습니다.
'여기가 아주 한가했으면' 하는 바람이긴 합니다.  ^^

벗바리님의 댓글의 댓글

대댓글 작성자 벗바리 (61.♡.56.77)
작성일 04.19 17:09
@벗님님에게 답글 지켜보는 게시물은 많이 안늘면 좋긴한데(악의 무리들은 꼼꼼해서 그러긴 쉽지 않겠지만 ㅎㅎ) 잡담은 좀 많이 늘었으면 좋겠습니다 ^^
쓰기 분류
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색