카테고리 없음
파이썬 경기도 31개 시군 CI 휘장, 국기 이미지 다운 받기
도는머니
2022. 10. 3. 09:24
# 임포트함
# 콘솔 출력안되게
# https://wikidocs.net/21952#_2
# pyinstaller --onefile --windowed 6_myproject/9_wikipia_list.py
# pip install pyinstaller
import time
import urllib
import chromedriver_autoinstaller
import requests
import os.path
from tkinter import filedialog
from bs4 import BeautifulSoup
from selenium import webdriver
chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0] # 크롬드라이버 버전 확인
try:
options = webdriver.ChromeOptions()
options.add_argument('headless')
# options.add_argument('window-size=1920x1080')
# options.add_argument("disable-gpu")
browser = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe', chrome_options=options)
except:
chromedriver_autoinstaller.install(True)
browser = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe')
browser.implicitly_wait(1)
# 1. 네이버 이동
browser.get("http://naver.com")
file_path = ""
# 다운로드 경로 표시
def downLoadPathChoice():
global file_path
# 경로 창을 보여주고 폴더를 반환함
folder_selected = filedialog.askdirectory()
if folder_selected == "": # 사용자가 취소를 누를 때
print("폴더 선택 취소")
return
# 모든 데이터 삭제
# txt_dest_path.delete(0, END)
# 경로창에 데이터를 입력함
# txt_dest_path.insert(0, folder_selected)
file_path = folder_selected
# filedialog.quit
def wikipia_download(sigun_name):
global file_path
# url = f'https://ko.wikipedia.org/wiki/{sigum_name}'
# sigun_name = '수원시'
sigun_name1 = urllib.parse.quote(sigun_name)
url = f'https://ko.wikipedia.org/wiki/{sigun_name1}'
print(sigun_name, url)
# https://www.whatismybrowser.com/detect/what-is-my-user-agent/
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36'}
# 페이지 불러오기
res = requests.get(url, headers=headers)
res.raise_for_status()
# 파서
soup = BeautifulSoup(res.text, "html.parser")
# with open('test.html', 'w', encoding='utf8') as f:
# f.write(soup.prettify())
# 파일에서 이미지 상세찾기
target_img = soup.find('img', attrs={'class': 'thumbborder'})
# 이미지 이름 찾기 Flag of Hwaseong.svg
flag_name = target_img.get('alt')
# 이미지페이지
img_page_url = 'https://commons.wikimedia.org/wiki/File:' + target_img.get('alt').replace(' ', "_")
browser.get(img_page_url)
# 상세이미지로 이동하기
res = requests.get(img_page_url,
headers=headers)
# 상세이미지 파일 파서
soup = BeautifulSoup(res.text, "html.parser")
print(sigun_name, img_page_url, ('File:' + flag_name))
# 이미지 파일 주소 갖고 오기
target_img = soup.find('img', attrs={'alt': ('File:' + flag_name)}).get('src')
# print('target_img')
# 이미지 파일 태그 갖고 오기
target_img_resp1 = requests.get(target_img)
# print(target_img_resp1)
# 파일 만들기
with open(file_path+"\\"+sigun_name + ' 슬로건.jpg', 'wb') as out_file:
out_file.write(target_img_resp1.content)
print(sigun_name, '이미지 저장완료 ')
# 시군명 이름 들어가게 함
sigum_name_list = ['수원시', '용인시', '고양시', '성남시', '화성시', '부천시', '남양주시', '안산시', '평택시', '안양시', '시흥시', '김포시', '파주시', '의정부시',
'광명시', '하남시', '군포시', '오산시', '양주시', '이천시', '구리시', '안성시', '의왕시', '포천시', '양평군', '여주시', '동두천시',
'과천시', '가평군', '연천군', '광주시_(경기도)']
downLoadPathChoice()
print('저장경로는 : ', file_path)
os.startfile(file_path)
for sigun_name in sigum_name_list:
wikipia_download(sigun_name)
time.sleep(0.3)
browser.close()