agencies

구글 도크를 이용한 중국의 국내 언론사 위장 웹사이트 URL 수집 본문

Ⅳ. 기타

구글 도크를 이용한 중국의 국내 언론사 위장 웹사이트 URL 수집

agencies 2024. 2. 9. 11:39

중국의 국내 언론사 위장 웹 사이트를 방문한 뒤

포스팅 되어 있는 게시물을 검색했습니다. 하지만 좀 더 빠르게 수집을 하기 위해 

파이썬의 requests, beautifulsoup 모듈을 사용했습니다.

 

아쉬운점 : 셀레니움을 이용했더라면, 검색 시 수집되는 게시물이 10개가 아닌 더 많은 양을 얻을 수 있었을텐데

requests로는 10개밖에 수집을 못 하였다. * 스크롤 시 더 많은 게시물이 나타나고 있다.

 

소스코드

import requests
from bs4 import BeautifulSoup as bs
from datetime import datetime
#pip install requests
#pip install beautifulsoup4

#검색 키워드
keywords = [

    
    ]
'''
keywords = [
    "중러 온라인 문화 교류 행사를", "지열 온실 내의 블루베리",
    "산둥성 이난(山東沂南): 마을거주 관리", "더저우,   러시아  우성과  온라인 문화",
    "기남(沂南)서공연(徐公硯):천년문화의 전승","양신현(陽信縣)위원회 홍보부와  일본기노카",
    "3mL 대용량 포켓형 전자담배 VOOPOO VMATE PRO","Xinhua Silk Road - Seraphim, S4 하프셀 시리즈",
    "중한시범구 중한도시관 개관식 및 중한 경제무역 좌담회","12 명의 손님은 낭만주의 여행을 갔다",
    "후오비 1억 달러 규모 유동성 펀드 설립 예정","PERERAN 브랜드가 만능으로 업그레이드 되었을 때",
    "한화그룹, 새로운 시장 트렌드를 선도하고 개인 투자자들의 도약을 돕습",
    "화웨이, 네 가지 개방 소스 기본 소프트웨어 프로젝트 주도",
    "Hangxiao Steel Structure 소개 영상, 18개국에서 방영",
    "일구쇼핑은 블록체인기술을 리용하여",
    "매그니페이' 플랫폼, 블록체인과 DeFi를 활용하여",
    "현대차그룹, 내년 하반기 중국 수소연료전지 생산기지 가동",
    "더저우(德州)시 당위원회 홍보부가",
    "빈저우(濱州)와 예멘 사이아이(賽艾) 교육학원의",
    "Holo Metaverse Intelligent Home Library가 베이징에서 기자회견",
    "어떻게 제가 재배하는 야채를 유기농 야채라고 확신할 수 있을까요",
    "The History and Culture Development and Functions of Guizhou Rosa Roxburghii Tratt",
    "면책 조항 :이 기사는 다른 매체에서 재생산되었으므로 재 인쇄의 목적은 더 많은 정보를 전달하는 것이지,이 웹 사이트가 그 견해에 동의하고 그 진위에 책임이 있으며 법적 책임을지지 않는다는 것을 의미하지는 않습니다. 이 사이트의 모든 자료는 인터넷을 통해 수집되며, 공유의 목적은 모든 사람의 학습과 참고를위한 것이며, 저작권 또는 지적 재산권 침해가있는 경우 메시지를 남겨주십시오."
    "료녕단동변경경제합작구: 투자유치구도 다각도로 모색",
    "중한시범구 중한도시관 개관식 및 중한 경제무역",
    "BYD Introduces New DM-i Hybrid Technology and 1.5L New Xiaoyun Engine",
    "한화그룹, 새로운 시장 트렌드를 선도하고 개인 투자자들의 도약을 돕습니다",
    "면책 조항 :이 기사는 다른 매체에서 재생산되었으므로 재 인쇄의 목적은 더 많은 정보를 전달하는 것이지,이 웹 사이트가 그 견해에 동의하고 그 진위에 책임이 있으며 법적 책임을지지 않는다는 것을 의미하지는 않습니다.",
    "Hangxiao Steel Structure 소개 영상, 18개국에서 방영",
    "이를 통해 장치는 China Unicom 5G SA의 시험 상용 네트워크에서 응용 프로그램 설명자", "산둥성 닝양: 겨울철에 고준위 농지 건설",
    "중국 설연휴 마음껏 여행 천리산해를 이루었다", "산둥동평: 겨울 유람 백불산"
     ]
'''

#제외 URL
non_target = ["google.com"]
#도메인
do = [".com", ".org", ".net"]


#구글 검색 URL 생성
for x in keywords:
    url = 'https://www.google.com/search?q=intext:"%s"'%str(x)

    #URL 가공
    res = requests.get(url)
    soup = bs(res.text,'html.parser')
    result = soup.find_all("a")

    for i in result:
        href = i.get("href")
        for j in non_target:
            if (href.startswith("/url?q=")) and (not j in href) and ("http" in href):
                href = href[7:]
                for k in do:
                    if k in href:
                        href = href.split(k)[0]+k
                        print(href)
                        #검색한 URL을 중복 없이 dataurl.txt 파일에 저장
                        with open("dataurl.txt","r") as file:
                            data = file.read()
                        if href not in data:
                            with open("dataurl.txt","a+") as re_file:
                                re_file.write(href+"\n")

#최근 저장된 기록 표시
with open("dataurl.txt","a+") as file:
    file.write("* Notice [google dork을 이용한 검색 목록 %s]\n"%datetime.now())

 

 

결과물 

 

 

 

하지만 정상적인 웹 사이트도 수집이 되는 오차가 있기 때문에,

이 부분은 직접 하나씩 검토가 필요해 보인다.