13,200원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
[셀레니움 사용해보기]웹 드라이버 경로관련
크롬드라이버 버전(120.0.6099.130(공식 빌드) (64비트)에 맞게 웹드라이버를 다운로드(https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/120.0.6099.109/win64/chromedriver-win64.zip) 해서, app.py 경로에 가져왔고요. 강의 내용과 동일하게 코드를 입력했으나 경로를 찾지 못하는 듯 합니다. 셀레니움이 20년에 비해 많이 지나서 최신 버전이라 강의내용대로 하면 구현이 안되는 걸까요?
- 해결됨실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
[page숫자설정]int(page) 관련문의드립니다.
page=request.form['input2'] 가 text 형이어서 for 문에서 사용할 때에 int(page)로 해주어야 오류가 없는데요.index.html 에서 <input type='number'... > 로 number로 지정을 해주는 데 이 때부터 text 가 되는 건지, 아니면 request.form 을 하면서 text로 바뀌는 건지요?
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
안녕하세요 강의 정말 잘봤습니다 ㅎㅎ
안녕하세요 강의 정말유용하게 잘봤습니다 ㅎㅎ 질문이 있는데 현제 현업에서 데이터분석쪽을 일하고있는데 데이터분석으로 시각화 한것을 웹사이트에 뿌려줄라고하는데 이런저런 방법을 해도 웹에 데이터가 잘 전달이 안되는거 같아요 오류 500이,, 예를들어 plt.~~~ plt.~~` plt. show() 이렇게 한묶음인데 이거를 함수로 묶고 return값으로 plt.show()를하면 개발환경에서는 잘 나오는데 웹에는 안뿌려지고ㅜㅜ 이런저런 방법시도중인데 혹시 이런경우에는 어떻게 처리하는게 맞을까요?ㅠㅠ
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
혹시 외부에서도 웹을 볼 수 있게 작동 하려면 어떻게 해야할까요?
혹시 외부에서도 웹을 볼 수 있게 작동 하려면 어떻게 해야할까요?
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
print(soup.select("") 에서 "GET / HTTP/1.1" 500 - 에러 나네요.
아래까지는 잘 진행되었습니다. def hello(): # 엔터치기 req = requests.get("https://www.daum.net/") # 이런 식으로 HTML에 있는 코드를 다 가져온다 soup = BeautifulSoup(req.text, 'html.parser') print(soup) 지금은 다음 실시간 이슈 검색어가 없어서 동일하게 실습을 하지 못하고 우측 하단에 있는 인기상품BEST 100에서 검색해서 Copy selector 하여 아래 같이 붙여넣고 실행하면 에러가 납니다. def hello(): # 엔터치기 req = requests.get("https://www.daum.net/") # 이런 식으로 HTML에 있는 코드를 다 가져온다 soup = BeautifulSoup(req.text, 'html.parser') print(soup.select("#listWrap > li:nth-child(1)")) 에러는 다음과 같습니다. [2021-05-21 20:52:32,833] ERROR in app: Exception on / [GET] Traceback (most recent call last): File "C:\Anaconda3\lib\site-packages\flask\app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1953, in full_dispatch_request return self.finalize_request(rv) File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1968, in finalize_request response = self.make_response(rv) File "C:\Anaconda3\lib\site-packages\flask\app.py", line 2097, in make_response raise TypeError( TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement. 127.0.0.1 - - [21/May/2021 20:52:32] "GET / HTTP/1.1" 500 -
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
엑셀 파일 생성이 안됩니다. ㅠㅠ
from flask import Flask, render_template, requestapp = Flask(__name__)# 크롤링 라이브러리 importimport requestsfrom bs4 import BeautifulSoupfrom openpyxl import Workbookwrite_wb = Workbook()write_ws = write_wb.active@app.route('/')def hello(): return render_template("index.html")@app.route('/result', methods=['POST'])def result(): if request.method == 'POST': keyword = request.form['input1'] page = request.form['input2'] # https://search.daum.net/search?nil_suggest=btn&w=news&DA=SBC&cluster=y&q= + keyword daum_list = [] for i in range(1, int(page) + 1): req = requests.get("https://search.daum.net/search?nil_suggest=btn&w=news&DA=SBC&cluster=y&q=" + keyword + "&p=" + page) soup = BeautifulSoup(req.text, 'html.parser') for i in soup.find_all("a", class_="f_link_b"): print(i.text) daum_list.append(i.text) for i in range(1, len(daum_list) + 1): write_ws.cell(i, 1, daum_list[i-1]) write_wb.save("result.xlsx") return render_template("result.html", daum_list = daum_list)if __name__ == "__main__": app.run() 왜 저만 안되는 건지 ? ㅠㅠ
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
소스 올려봅니다
from flask import Flask, render_template,request app = Flask(__name__) import requests from bs4 import BeautifulSoup # 크롤링 라이브러리 import import requests from bs4 import BeautifulSoup from openpyxl import Workbook write_wb = Workbook() write_ws = write_Wb.active write_ws.cell(1,1,"안녕") write_wb.save("result.xlsx") @app.route('/') def hello(): return render_template("index.html") @app.route('/result', methods=['POST']) def result(): if request.method == 'POST': keyword = request.form['input1'] page = request.form['input2'] # https://search.daum.net/search?nil_suggest=btn&w=news&DA=SBC&cluster=y&q= + keyword daum_list = [] for i in range(1, int(page) + 1): req = requests.get("https://search.daum.net/search?nil_suggest=btn&w=news&DA=SBC&cluster=y&q=" + keyword + "&p=" + page) soup = BeautifulSoup(req.text, 'html.parser') for i in soup.find_all("a", class_="f_link_b"): print(i.text) daum_list.append(i.text) return render_template("result.html", daum_list = daum_list) if __name__ == "__main__": app.run()
- 실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
openpyxl 에서 막혔습니다.
삭제된 글입니다
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
크롤링 관련해서 문의좀 드릴께요~
안녕하세요. 강사님. 강의와는 상관없을 수 있지만 혼자서 실습하다가 궁금한 부분이 있어서 문의드립니다. get방식의 json 형태로 제공되는 사이트가 있습니다. 브라우저로 url을 치고 들어가면 json 데이터를 볼 수 있고, requests를 통해서 받아올수도 있습니다. 그런데 이상한 것이 크롬브라우저로 접속하거나 requests로 요청하면 특정정보만 누락이 됩니다. 예를들어 인물정보에서 주소영역이 없습니다. 반면에 동일한 url로 에지나 익스플로러로 접속하면 주소영역이 나오고요~ 죄송하지만 이런 현상이 발생되는 이유를 아실까요??
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
다른 editor 사용해도 되나요?
전 오래동안 vs code 사용해서요 파이참은 코드가 좀 다르다 초보와 맞지 안다 같은 소리를 많이 들어 안사용했었는데 강의 내용이 code 사용해도 coding이 다르지 않나요?
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
네이버 쇼핑 핫딜 크롤링 문제
네이버 쇼핑 핫딜 데이터를 크롤링하는 과정에서 강의에서는 핫딜 버튼의 ClassName이 '_productSet_hotdeal'로 되어있어 driver.find_element_by_class_name("_productSet_hotdeal").click() 코드를 사용하여 버튼을 클릭했지만, 현재는 네이버 쇼핑 소스가 변경되어 모든 버튼의 ClassName이 'subFilter_filter__3Y-uy'로 되어있어 driver.find_element_by_css_selector("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > div.seller_filter_area > ul > li:nth-child(5) > button").click() 코드를 사용하여 버튼을 클릭하였습니다. 문제는, 버튼 클릭까지는 문제 없이 진행 되었지만 핫딜 페이지의 데이터를 출력하는 과정에서 핫딜 데이터를 출력하는 것이 아닌 기존의 데이터를 출력합니다. 어떻게 해결해야 될까요? - app.py from flask import Flask, render_template, request app = Flask(__name__) # crawling module import import requests from bs4 import BeautifulSoup # excel module import from openpyxl import Workbook write_wb = Workbook() write_ws = write_wb.active # 셀리니움 사용 전 크롬 웹드라이버 설치 # Web automation module import from selenium import webdriver @app.route("/") def hello_world(): return render_template("index.html") @app.route("/result", methods=["POST"]) def result(): keyword = request.form['input1'] page = request.form['input2'] daum_list = [] # crawling for i in range(1, int(page) + 1): req = requests.get("https://search.daum.net/search?nil_suggest=btn&w=news&DA=PGD&cluster=y&q=" + keyword + "&p=" + str(i)) soup = BeautifulSoup(req.text, "html.parser") for i in soup.find_all("a", class_="f_link_b"): daum_list.append(i.text) # excel for i in range(1, len(daum_list) + 1): write_ws.cell(i, 1, daum_list[i-1]) write_wb.save("static/result.xlsx") return render_template("result.html", daum_list = daum_list) @app.route('/naver_shopping') def naver_shopping(): driver = webdriver.Chrome('./chromedriver.exe') driver.implicitly_wait(3) driver.get("https://search.shopping.naver.com/search/all?query=%EA%B3%B5%EA%B8%B0%EC%B2%AD%EC%A0%95%EA%B8%B0&frm=NVSHATC&prevQuery=%EA%B3%B5%EA%B8%B0%EC%B2%AD%EC%A0%95%EA%B8%B0") soup = BeautifulSoup(driver.page_source, "html.parser") for i in soup.select("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > ul > div > div > li"): print(i.find("a", class_="basicList_link__1MaTN").text) print("---------------------------") driver.find_element_by_css_selector("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > div.seller_filter_area > ul > li:nth-child(5) > button").click() soup = BeautifulSoup(driver.page_source, 'html.parser') for i in soup.select("#__next > div > div.container > div.style_inner__18zZX > div.style_content_wrap__1PzEo > div.style_content__2T20F > ul > div > div > li"): # 핫딜 페이지로 정상적으로 이동되어 있지만 기존의 페이지의 데이터를 출력함 print(i.find("a", class_="basicList_link__1MaTN").text) return render_template("shopping.html") if __name__ == "__main__": app.run() - 실행결과
- 해결됨실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
크롤링 코드를 건너뛰어 버리고 실행이 안됩니다..
삭제된 글입니다
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
flask에서 html 연결이 안됩니다ㅠㅜ
저도 아래의 질문을 보고 똑같이 스펠링도 확인하고, 컴퓨터도 꺼보고, 파일구조도 같이 해보고 햇는데 연결이 어려워서 다음껄 못 따라가고 있습니다. 가장 처음에 했던 헬로우월드만 계속 나오고 왜 index.html이 안나오는지를 모르겟습니다ㅠㅜ 검색도 해봤는데 그에 대해선 제가 검색능력이 부족한지 못찾아서 이렇게 질문 올리게 되었습니다. 확인하면 답변 부탁드릴게요. app.py from flask import Flask, render_template app = Flask(__name__) import requests from bs4 import BeautifulSoup @app.route('/') def hello(): req = requests.get('https://news.daum.net/ranking/age/') soup = BeautifulSoup(req.text, 'html.parser') list_daum = [] for i in soup.select("#mArticle > div.rank_news > div.item_age.item_20s > div.rank_female > ol > li"): list_daum.append(i.find("a").text) return render_template("index.html", daum = list_daum) @app.route('/about') def about(): return "about World!" if __name__ == '__main__': app.run() index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> 여기는 html영역! <a href="/about">테스트</a> <ul> {% for i in daum %} <li>{{i}}</li> {% endfor %} </ul> </div> </body> </html> 파일 구조 실행화면
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
index.html 부분을 인식을 못하네요
index.html은 만들어진 상태입니다.
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
저는 네이버 인기 검색어를 가져올려고하는데 못뽑아 오네요 혹시 네이버 보안 문제일까요???
저는 네이버 인기 검색어를 가져올려고하는데 못뽑아 오네요 혹시 네이버 보안 문제일까요???
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
Flask 실행하면 웹사이트 127.0.0.1:5000 포트 부분에서 404에러가 뜨네요 어떻게 해야되나요??
(사진)
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
저는 이렇게 venv부분이 다른 색으로 뜨는데 무슨 차이인가요??
(사진)
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
윈도우 PyCharm 환경 설정들 처음부터 알려주세요
help me
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
실시간
출력한 결과값에 대해서 실시간으로 자동업데이트는 어떻게하나요? 새로고침없이요!
- 미해결실시간 트렌드 홈페이지 개발(파이썬 크롤링 + Flask)
아톰에서 실행
안녕하세요. 아톰에서 app.py 를 실행시키고 127.0.0.1:5000/ 접속하면 리턴값이 나타납니다. 그런데 리턴값을 변경하면 예를 들어 "hi world" 해당 부분이 변경되지가 않습니다. 127.0.0.1:5000/ 에 접속해도 "hello world"가 그대로 유지됩니다. 다만 제가 app.run(host="0.0.0.0", port = "9100") 이렇게 별도로 포트번호를 지정하고 접속하면 수정사항이 반영됩니다. 127.0.0.1:5000 접속시 출력내용이 바뀌지 않는 이유가 있을까요?? 쿠키등의 문제일까 싶어서 다른 브라우저에서 접속해도 동일하네요~