롯데시네마 페이지를 크롤링 해보려고하는데 위와 같이 제가 필요한 영화 상영 정보가 xhr 타입으로 넘어오는 걸 알게 되서 ajax 크롤링 강의 영상보면서 따라하고 있는데 오류가 나타나서 질문 드립니다 ㅎㅎ import requests from bs4 import BeautifulSoup import json import pprint url = "http://www.lottecinema.co.kr/LCHS/Contents/Cinema/Cinema-Detail.aspx?divisionCode=1&detailDivisionCode=1&cinemaID=1013" dic = {"MethodName":"GetPlaySequence", "channelType":"HO", "osType":"Chrome", "osVersion":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36", "playDate":"2019-12-10", "cinemaID":"1|1|1013", "representationMovieCode":""} res = requests.post(url, data=dic) result = json.loads(res.text) print(result) 코드는 위와 같이 작성했는데 처음에 get 방식으로 요청을 해서 오류가 나타나길레 혹시 요청방식에 문제가 있나 보니까 post로 가는데 get으로 요청을 했어서 요청 방식을 바꾸어서 post로 파라미터값과 함께 넘겨주어 봤는데도 오류가 나서 오류 구문은 다음과 같습니다. Traceback (most recent call last): File "C:/Git/my_web_cgv/ex2.py", line 23, in <module> result = json.loads(res.text) File "C:\Users\jong\AppData\Local\Programs\Python\Python37-32\lib\json\__init__.py", line 348, in loads return _default_decoder.decode(s) File "C:\Users\jong\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Users\jong\AppData\Local\Programs\Python\Python37-32\lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 3 column 1 (char 4) 오류 구문을 구글링해서 찾아보니깐 Check the response data-body, whether actual data is present and a data-dump appears to be well-formatted. In most cases your json.loads - JSONDecodeError: Expecting value: line 1 column 1 (char 0) error is due to : non-JSON conforming quoting XML/HTML output (that is, a string starting with <), or incompatible character encoding 비슷한 질문이 올라와 있어서 번역기로 보니깐 다음과 같은 해결책을 제시해주는데 제가 가진 지식으로는 무슨 소리인지 어려움이 있어 이렇게 질문 남겨요 ㅠㅠ
인터넷에 검색해보아도 명확한 대답이 없어서 여기에 질문드립니다 .. ! return ( <> // 이것입니다 ! < Head > < title > NodeBird </ title > < link rel = 'stylesheet' href = 'https://cdnjs.cloudflare.com/ajax/libs/antd/3.10.2/antd.css' ></ link > </ Head > < AppLayout > < div > Profile </ div > </ AppLayout > </> // 이것입니다 ! ); 강의를 보니 어떠할 때는 <> </>를 쓰시고 어떠할 때는 안쓰시 던데 어떠할 때 쓰고, 쓰는 이유는 무엇인가요 ??
안녕하세요 강사님. 강의 정말 잘 봤습니다. 개인적인 프로그램을 만들던 중 시작부터 막혔습니다. 제가 원하는건 textEdit에 처진 글들은 프린트 하는 건데 완료 버튼을 클릭하면 프로그램이 꺼져버립니다 ㅜㅜ 어떠한 오류메세지도 안떠서 인터넷에서도 방법을 못 찾았습니다. 코드는 아래와 같습니다. 두번째 pyqtSlot이 실행되면 바로 꺼져버립니다. 첫번째 pyqtSlot에서는 프린트가 정상 작동했는데.. 혼란스럽습니다. 그래서 Qdesigner 문제인가 싶어서 textEdit 을 painTextEdit로도 해봤었는데 둘다 같은 문제가 발생하고 lineEdit은 정상 작동하는데.. 여러 텍스트를 입력받아야 해서 lineEdit는 사용할 수 없습니다. 어떻게 해결할 수 있을까요? 그리고 pyqt5를 쓰면서 한번도 에러 메세지가 안나오던데...나오게 하는 방법이 없나요? 프로그램이 꺼져도 뭐가 문제인지 모르니 해결하기가 어렵습니다 ㅜㅜ import sys, io from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5 import uic from tag_test import Ui_MainWindow sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8') class Main(QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) self.initSignal() def initSignal(self): self.pushButton_7.clicked.connect(self.inputAdinfo) self.pushButton_9.clicked.connect(self.inputKeyword) @pyqtSlot() def inputAdinfo(self): self.ad_productN = self.lineEdit.text() self.ad_camN = self.lineEdit_2.text() @pyqtSlot() def inputKeyword(self): self.Keywords = self.textEdit.text() print(self.Keywords) if __name__ == "__main__": app = QApplication(sys.argv) window = Main() window.show() app.exec_()
안녕하세요. 이전 기초 강의는 잘 수강 하였습니다. 중급과정을 듣는 중에 위와 같이 계속 에러가 떠서 질문 남깁니다. 파이선 3.8, 윈도우 사용자이고, 터미널에서 pip install selenium을 설치하였습니다. 쓰는 크롬 버전은 78버전으로, 이에 해당하는 드라이버를 다운 받았습니다. 혹시 몰라서 위에 보이는 바와 같이 쥬피터 노트북 상으로 selenium을 다운 받았는데도 실행이 안됩니다. 혹시나하여 conda로도 다운 받았는데, 여전히 실행이 되지 않네요. 뭐가 문제일까요..;;
현재 실전 강의 초반 route 부분입니다 route는 잘 뿌려지고 vue 개발자 도구에서도 제대로 표시되는대 브라우저 콘솔에 아래 에러가 계속 떠서 문의 드립니다. Access to XMLHttpRequest at 'http://192.168.0.3:8080/sockjs-node/info?t=1575908476154' from origin 'http://localhost:8080' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
안녕하세요 전체 클라이언트 서버 관계도가 명확하게 이해가지 않아 질문드립니다. 아래는 제가 이해한 내용인데요 맞는지 궁금합니다. NodeBird-call - api 서버를 통해 받아온 데이터로 템플릿만 생성해준다 NodeBird-app - api 서버, 권한이 필요없다 NodeBird-api - api 서버, 권한이 필요하다 추가질문 1. NodeBird-app과 NodeBird-api를 나눈 이유는 권한이 필요한것과 불필요한 것을 나누기 위함인가요? 아니면 공개, 비공개 하기 위함인가요? 2. 만약 single page application을 사용한다면 NodeBird-call같은 서버의 역할은 무엇인가요? 번들된 스크립트를 불러오는 index.html를 만들어주거나 회원가입이나 로그인 페이지같은 템플릿 페이지를 생성해주는 역할을 하는건가요?
소수 출력 예제를 응용해 해당 숫자의 약수를 나열하는 프로그램을 만들고 싶은데요. 그래서 예를들어 숫자를 numbers.all = [2,3,4,5] 이렇게 배열하고, 각 숫자들의 약수를 배열로 넣으려고 생각했습니다. 그런데 배열 안의 배열에는 push로 값을 넣을 수 없나요? numbers . isAliquot = function ( number ){ for ( var i = 0 ; i < number ; i ++){ if ( number % ( i + 1 ) === 0 ) { this . all [ i ]. push ( i+1 ); } } } numbers . calc = function (){ for ( var i = 0 ; i < this . all . length ; i ++){ this . isAliquot ( this . all [ i ]) } }
혹시 댓글에 대한 댓글은 알림이 안가실가봐 새로 써서 질문 이어드려요 실제 해당 현상이 일어나는 url이에요(실제 댓글은 300개가 넘으나 더보기 버튼 2번만 눌러도 더 이상 노출 x, 앱에서는 끝까지 볼 수 있음) https://www.instagram.com/p/B5WV9wlFNyj/comments/?hl=ko
안녕하세요 선생님, 인스타그램 댓글을 모두 수집해오고싶어서 댓글 더보기를 반복해서 누르게 한 후 댓글을 가져오게끔 했는데 다음과 같은 현상이 있었어요. 1) 크롤러를 돌린게 아니라, 그냥 평범하게 pc웹, 스마트폰 웹으로 열어서 게시글의 댓글들을 더 보려고 할 때, 실제 댓글은 1200개인데 더보기 버튼을 두번만 눌러도 더보기 버튼이 더 이상 노출되지 않아서 댓글을 50~60개정도밖에 보질 못해요. (하지만 앱으로 보면 더보기 버튼이 사라지지 않고 계속 잘 나옴, 스마트폰 * pc * 크롬 * 익스플로러 웹으로 보면 이런 현상이 있어요.) * 모든 글들이 그렇진 않고 10개중의 2개 정도의 글이 이런 현상이 있어서 댓글을 전부 가져오질 못해요.
while(true){ var 숫자1=Math.floor(Math.random()*9)+1 var 숫자2=Math.floor(Math.random()*9)+1 var 결과=숫자1*숫자2 var 조건=true; while(조건){ var 답=prompt(string(숫자1)+'곱하기'+string(숫자2)+'는?') if (답===결과) { alert('딩동댕') 조건=false;}else{ alert('떙') } } }
안녕하세요, Def 기능을 사용해서 업무 프로세스를 자동화 하려 하는데, 제가 받아오는 데이터셋의 컬럼명이 계속 변경이 됩니다. 그래서 이후 후속작업이 끊기게 되는데요, 컬럼의 스트링값을 그대로 사용하는것 외에 다른 방법이 없는지요? 아래 예에서 'PX_LAST(fill=FILL.prev,dates=RANGE(2015-01-01,2015-01-15))' 라는 컬럼이 다음번엔 다른이름으로 변경됩니다. 그래서 위치로 참조하거나 하는 방법이 있을지 궁금합니다. df['HCP'] = df['PX_LAST(fill=FILL.prev,dates=RANGE(2015-01-01,2015-01-15))'] / df['PX_LAST(fill=FILL.prev,dates=RANGE(2015-01-01,2015-01-15))'].shift(1) - 1 df['HCP'] = df['HCP'] *100 df
// server.js server . use ( '/' , express . static ( path . join ( __dirname , 'public' ))) yarn dev를 사용해서 개발모드로 했을 시에는 /favicon.ico를 잘 찾지만 yarn start를 해서 배포모드로 실행했을 시에는 /favicon.icon을 찾을 수 없습니다.... 어떻게 해야할 지 잘모르겟습니다.ㅠㅠㅠㅠㅠ