묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
날짜 정보
안녕하세요.현재 시점의 fdr 데이터에는 날짜 정보가 없습니다.저는 최종적으로 시계열 데이터를 기준으로 데이터를 분석하는 것을 목표로 하고 있는데요.시계열 데이터를 포함한 fdr데이터는 가져올 수 있는 방법이 없을까요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
[5.1] pd.concat Reindexing error
강의와 같이 코드를 입력 하였고 아래와 같은InvalidIndexError: Reindexing only valid with uniquely valued Index objects 에러가 납니다.다른분이 질문해주신 글에 답변 처럼 df_item = pd.concat(item_info, ignore_index=True)처리를 하여도 같은 에러가 생깁니다. 해당 문제때문에 강의 진행이 안돼서,, 어떻게 하면 해결할 수 있을까요
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
px.line 그리기에 대해서 문의 드립니다.
반복 적으로 관심 종목을 불러와서 챠트를 그리고 싶어서 while 문으로 구성 해 봤는데, 챠트가 출력되지 않습니다. 어디가 문제일까요? 문제가 된 while 문 출력 결과 입니다. 출력 결과 관심 종목을 입력 받으면 입력 받은 종목의 챠트를 출력하고, 다음 종목을 입력 받기를 기다리게 구성하였고, n or N을 입력하면 종료하는 것으로 구성하였습니다. 그런데 결과물에 챠트가 출력되지 않습니다. 한 종목 출력하면 출력이 됩니다.
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
5/6 tqdm으로 전체 데이터...
concat으로 전제 종목을 합치는 pd.concat(result.tolist()) 코드 실행시 오류가 납니다. 오류 메세지는 : InvalidIndexError: Reindexing only valid with uniquely valued Index objects입니다. get_item_info 함수를 실행해서 result 결과를 확인해 보니, index 가 모두 같지 않은 것 같습니다. 오류 부분이 어디일까요?
-
미해결파이썬 증권 데이터 수집과 분석으로 신호와 소음 찾기
다른 사이트를 크롤링해보려는데 인코딩쪽에 문제가 있는 것 같습니다.
안녕하세요 선생님. 선생님 강의를 듣고 제가 원하는 사이트를 크롤링 해보려는데 인코딩문제가 생기는 것 같습니다. 사이트 주소는 이렇습니다. http://veganfesta.kr/modules/company/company_list.html?mc_code=1013import requests url = "http://veganfesta.kr/modules/company/company_view.html?seq=241&mc_code=1013" headers = { 'user-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'} response = requests.get(url,headers=headers) response.encoding='utf-8' print(response.text)이렇게 코드를 짜봤는데요 결과는이런식으로 나옵니다. 인코딩 문제인가 하였는데response.encoding을 통해 uff-8인것을 확인했습니다.response.status는 200으로 정상이구요 ㅜ뭐가 잘못된 걸까요? 2시간가량 전전긍긍해보았지만 답을 찾지못해 선생님께 질문드립니다..제가 url을 구글이나 네이버로 바꿔 시도를 해보았을때는 잘되었는데 저 사이트로 url을 설정했을때 이렇게 나오네요.. 읽어주셔서 감사하며 답변 부탁드리겠습니다.
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
웹툰 사이트 body 안에가 안불러져옵니다.
<body> 태그 하위<div id="root"> 태그 하위에 실제 사이트 html이비어져서 옵니다.
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
네이버 웹툰을 활용한 BeautifulSoup 강좌에서 인터페이스가 달라졌습나다.
웹 크롤링을 하려 하니까 인터페이스가 완전히 갈아엎어져서 이거 뭐 어떻게 해야할지를 모르겠네요
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
구글 무비 강좌에서요
movies=soup.find_all("div",attrs={'class':'???}) title=movie.find('span',attrs={'class':'???'}).get_text()attrs 값을 못찾겠습니다.
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
네이버 IT뉴스 화면 requets.get 에러가 발생합니다ㅜ
네이버 IT 뉴스 링크를 그냥 크롬이나 사파리를 통해서 접속하면 정상적으로 잘 접속이 됩니다.하지만 requests.get을 사용하면 에러가 발생해 파싱을 정상적으로 하기 힘든 상황입니다.ㅠ셀레니움을 사용하던지 다른 뉴스 페이지를 사용해야할거같습니다.저의 경우는 구글뉴스를 파싱 했습니다.좋은 강의 해주셔서 감사합니다.! import re import requests from bs4 import BeautifulSoup weather_url = "https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&query=%EC%84%9C%EC%9A%B8+%EB%82%A0%EC%94%A8&oquery=%EC%84%9C%EC%9A%B8+%EB%82%A0%EC%8B%9C&tqi=h%2B4nksprvTVssQv3%2BkdssssstAZ-264690" news_url = "https://www.google.com/search?q=%EA%B5%AC%EA%B8%80%EB%89%B4%EC%8A%A4&rlz=1C5CHFA_enKR979KR979&source=lnms&tbm=nws&sa=X&ved=2ahUKEwio8ZP_jIP9AhXnm1YBHfaRBAUQ_AUoAXoECAEQAw&biw=1057&bih=976&dpr=1" english_url = "https://www.hackers.co.kr/?c=s_eng/eng_contents/I_others_english&keywd=haceng_submain_lnb_eng_I_others_english&logger_kw=haceng_submain_lnb_eng_I_others_english" headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36", "Accept-Language":"ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7" } def create_soup(url): res = requests.get(url, headers=headers) res.raise_for_status() return BeautifulSoup(res.text, "lxml") def get_weather_info(): soup = create_soup(weather_url) current_temp = soup.find("div", attrs={"class": "temperature_text"}).get_text().strip().split()[-1][2:] compare = soup.find("p", attrs={"class": "summary"}).get_text() summary_list = soup.find("dl", attrs={"class": "summary_list"}).get_text().strip() dust = soup.find_all("li", attrs={"class": "item_today level1"})[0].get_text().strip() micro_dust = soup.find_all("li", attrs={"class": "item_today level1"})[1].get_text().strip() uv = soup.find("li", attrs={"class": "item_today level2"}).get_text().strip() sunset = soup.find("li", attrs={"class": "item_today type_sun"}).get_text().strip() rain_ratio = soup.find("li", attrs={"class": "week_item today"}).find_all("span", attrs={"class": "weather_left"}) rain_ratio_am = rain_ratio[0].get_text().strip() rain_ratio_pm = rain_ratio[1].get_text().strip() print("현재 기온 : {}".format(current_temp)) print(compare) print(summary_list) print("{} / {} / {} / {}".format(dust, micro_dust, uv, sunset)) print("강수 확률 : {} / {}\n".format(rain_ratio_am, rain_ratio_pm)) def get_news_headline(): soup = create_soup(news_url) headlines = soup.find_all("div", attrs={"class": "mCBkyc ynAwRc MBeuO nDgy9d"}, limit=6) urls = soup.find_all("a", attrs={"class": "WlydOe"}, limit=6) for idx, headline in enumerate(headlines): print(headline.get_text()) print(urls[idx]["href"] + "\n") def get_eng_sentence(): soup = create_soup(english_url) expression = soup.find_all("b", attrs={"class": "conv_txtTitle"}) sentences = soup.find_all("div", attrs={"id": re.compile("conv_kor_t\d*")}) print("\n< 오늘의 영어 회화 >") print("한글 표현") print("* " + expression[0].get_text()) for sentence in sentences[0:len(sentences)//2]: print(sentence.get_text().strip()) print("\n영어 표현") print("* " + expression[1].get_text()) for sentence in sentences[len(sentences) // 2:]: print(sentence.get_text().strip()) def main(): get_weather_info() get_news_headline() get_eng_sentence() if __name__ == "__main__": main()
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
23년 2월 7일, 다음 부동산 화면이 다름
23년 2월 7일 현재, 강의해주신 다음부동산의 화면이 상이해 네이버 부동산을 이용해서 비슷하게 따라해봤습니다.import requests from bs4 import BeautifulSoup url = "https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&query=%EC%86%A1%ED%8C%8C+%ED%97%AC%EB%A6%AC%EC%98%A4%EC%8B%9C%ED%8B%B0+%EB%A7%A4%EB%AC%BC&oquery=%EC%86%A1%ED%8C%8C+%ED%97%AC%EB%A6%AC%EC%98%A4%EC%8B%9C%ED%8B%B0+%EB%A7%A4%EB%A7%A4&tqi=h%2B4thwprvmZss6uUL7ossssstOZ-299895" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") houses = soup.find_all("tr", attrs={"class": {"_land_tr_row"}}) for num, house in enumerate(houses): info = house.get_text().split() print(f"=========={num+1}번 매물==========") print(f"매매 방식 : {info[0]}") print(f"매물 위치 : {info[1]}") print(f"매물 이름 : {info[2]}") print(f"동 : {info[3][:4]}") print(f"거래 부동산 : {info[3][4:]}") print(f"면적 : {info[4]}") print(f"가격 : {info[5]} 만원") print(f"층 : {info[-2]}")