❓
'''
1. <http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp> 의 내용을
인터넷을 통해 데이터를 수신하고 다음 결과형태로 출력하시오.
결과는 현재 날씨에 따라 달라 질수 있습니다.
[결과]
+ 구름많고 눈
|- 서울
|- 인천
|- 수원
|- 파주
|- 이천
|- 평택
+ 구름많음
|- 춘천
|- 원주
|- 청주
|- 충주
|- 영동
|- 광주
|- 목포
|- 여수
|- 순천
|- 광양
|- 나주
|- 대구
|- 안동
|- 포항
|- 경주
|- 울진
|- 울릉도
|- 제주
|- 서귀포
+ 맑음
|- 강릉
|- 부산
|- 울산
|- 창원
|- 진주
|- 거창
|- 통영
+ 구름많고 비/눈
|- 대전
|- 세종
|- 홍성
+ 흐리고 비/눈
|- 전주
|- 군산
|- 정읍
|- 남원
|- 고창
|- 무주
'''
from bs4 import BeautifulSoup
import urllib.request as req
url = "<http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp>"
res = req.urlopen(url)
list = {} # 딕셔너리 객체. {날씨 : 도시목록}
# xml 형태의 결과를 분석하기
soup = BeautifulSoup(res,"html.parser")
# soup.find_all("location") : location 태그들
for location in soup.find_all("location") :
name = location.find("city").string
weather = location.find("wf").string
# weather in list : list 딕셔너리 객체에 weather값 존재?
# weather = key값
if not (weather in list) :
list[weather] = [] # 리스트객체 생성.
list[weather].append(name) # 도시명 추가
# 화면 출력
for weather in list.keys() :
print("+",weather)
for name in list[weather] :
print("|-",name)
import urllib.request as url_r
import urllib.parse as url_p
from bs4 import BeautifulSoup
URL = "<http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp>"
data = {
'stnId': '108'
}
params = url_p.urlencode(data)
result = URL + "?" + params #GET 방식
data = url_r.urlopen(result).read()
text=data.decode("utf-8")
#f=open("data/resultData.xml", 'a')
#f.write(text)
#f.close()
soup = BeautifulSoup(text, "lxml")
cloudy = []
sunny = []
muddy = []
muddy_snow = []
cloudy_snow = []
for data in soup.select("location"):
city = data.select_one("city").get_text()
wf = data.select_one("wf").get_text()
if wf == '구름많음':
cloudy.append(city)
elif wf == '맑음':
sunny.append(city)
elif wf == '흐리고 눈':
muddy_snow.append(city)
elif wf == '흐림':
muddy.append(city)
elif wf == '구름많고 눈':
cloudy_snow.append(city)
print("+ 구름많고 눈")
for data in cloudy_snow:
print("|-\\t" + data)
print("+ 구름많음")
for data in cloudy:
print("|-\\t" + data)
print("+ 맑음")
for data in sunny:
print("|-\\t" + data)
print("+ 흐리고 눈")
for data in muddy_snow:
print("|-\\t" + data)
print("+ 흐림")
for data in muddy:
print("|-\\t" + data)
❓
'''
2. 네이버 로그인 후 상품 목록 조회하기
네이버 로그인.
쇼핑 메뉴 선택
쇼핑MY 메뉴 선택
주문확인/배송조회를 선택
'''
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome("c:/setup/chromedriver")
driver.get("<https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com>")
id = input("네이버 아이디를 입력하세요:")
driver.execute_script("document.getElementById('id').value='"+id+"'")
pw = input("네이버 비밀번호를 입력하세요:")
driver.execute_script("document.getElementById('pw').value='"+pw+"'")
driver.find_element("id", "log.login").click()
driver.find_element("id", "new.save").click()
driver.find_element('xpath', "//a[@class='nav shop']").click();
driver.find_element('xpath', "//*[@class='_myButton_button_2646r N=a:SNB.m.shoppingmy']").click();
driver.find_element('xpath', "//a[@class='_myButton_link_1yOU_ N=a:SNB.m.order']").click();
# 강사님
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver = webdriver.Chrome("c:/setup/chromedriver.exe")
driver.get("<https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com>")
id = input("네이버 아이디를 입력하세요.:")
driver.execute_script("document.getElementsByName('id')[0].value='"+ id +"'")
pw = input("네이버 비밀번호를 입력하세요.:")
time.sleep(1)
driver.execute_script("document.getElementsByName('pw')[0].value='"+ pw +"'")
time.sleep(1)
driver.find_element('xpath','//*[@id="log.login"]').click()
# 쇼핑 영역 클릭하기
#driver.find_element('xpath','//*[@id="NM_FAVORITE"]/div[1]/ul[1]/li[5]/a').click()
driver.find_element('css selector','.nav.shop').click()
time.sleep(1)
#driver.find_element('xpath','//div[@class="_myButton_my_button_1GyxC"]').click()
driver.find_element('css selector','div._myButton_my_button_1GyxC').click()
time.sleep(1)
#주문확인/배송조회 클릭하기
#driver.find_element('xpath','//*[@class="_myButton_layer_my_TuzvW"]/ul/li[6]/a').click()
#driver.find_element(By.LINK_TEXT,'주문확인/배송조회').click() #링크의 이름으로 바로 들어간다.
driver.find_element(By.PARTIAL_LINK_TEXT,'주문확인').click()
time.sleep(1)
#주문정보 보기
products = driver.find_elements('css selector',".goods_pay_section")
for product in products:
print("-", product.text)
time.sleep(2)
driver.quit()