해시태그 검색 후 최근게시물 없음
미해결
[자동화 완전 정복] 인스타그램 휴대폰, 웹 자동화 프로그램 개발
해시태그 검색 후 인기 게시물만 있고 최근 게시물은 보이지가 않는데 어떻게 해야되나요?
- python
- selenium
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
[자동화 완전 정복] 인스타그램 휴대폰, 웹 자동화 프로그램 개발
해시태그 검색 후 인기 게시물만 있고 최근 게시물은 보이지가 않는데 어떻게 해야되나요?
미해결
[자동화 완전 정복] 인스타그램 휴대폰, 웹 자동화 프로그램 개발
에러 확인 좀 부탁 드립니다.
미해결
파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
강의를 보면 ActionChain(driver).scroll( 이라는 함수를 사용하셨는데 스크롤을 위한 시작점을 선택해서 스크롤 시키는것 같습니다.) 하지만 저도 이 함수를 쓰려고 했지만 해당 함수가 ActionChain 에 안나오는걸로 보여서 나중에 보니 scroll_by_amount로 바뀐거로 보입니다. scroll 을 써야 좀더 사람같은?걸까요? 그리고 ActionChain에 TouchAction 이라는게 보이긴 하는데 터치를 시뮬레이션 할 수 있다면 더 좋을것 같은데 혹시 방법이 있을까요?
미해결
안녕하세요 react, redux, node.js를 활용하여 웹 앱 개발을 하려고 하는데 react의 경우 class형과 함수형 두 가지의 타입으로 개발이 되고 있더군요 그래서 함수형 react의 참고서를 찾아봤는데 참고할만한 교재를 선택하기에 어려움이 있어서 질문 드립니다. 혹시 추천해주실만한 참고서가 있을까요?
해결됨
[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
섹션7-2 5분 2초 apply부분에 apply(func, axis = 0)으로 하면 왜 '영어' 행이 하나 더 생기나요?
해결됨
실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
안녕하세요. 뷰티풀수프 기초 사용법 수강 중에 잘 안되는 부분이 있어서 질문 남깁니다. 네이버 메인 화면 개발자 모드에서 <span class="service_name">메일</span> 라는 태그를 찾아서 이 태그를 찾기 위해 span = soup.find(class_="service_name", string="메일") print(span) 이렇게 작성했는데 왜 결과값이 none 이 나오는지 이유를 모르겠습니다 ㅠㅠ 그리고 앞의 강의에서 개발자 모드의 element가 아니라 소스보기에서 보이는 코드에서 태그를 검색해서 찾아내는 것(?)이라고 말씀하셨던 것 같은데 제대로 이해한게 맞나요? 소스 보기로 보면 코드가 너무 지저분하게 보이는데 혹시 깔끔하게 볼 수 있는 방법이 있을까요?
해결됨
한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
안녕하세요. 사용자 입력 처리하기 강의 관련 질문입니다. input 태그를 통해 사용자 입력을 받고, 상태 관리하면, 상태에 사용자의 입력이 반영되는 게 한 단계씩 늦는 것 같습니다. (그 이유가 useState가 비동기적으로 처리된다고 들은적이 있는 것 같은데, 정확히 이해가 가지 않아서 질문드립니다.) 아래 코드의 handleOnChange함수에서, Q1) e.target.name, e.target.value은 제깍제깍 실시간으로 반영이 되는데, input state는 한 단계 늦게 반영이 됩니다. 이런 현상이 발생하는 이유는 무엇이고, 이건 개발하는데 문제가 되지 않는 이유는 뭔지? 가 궁금합니다! import { useState } from 'react'; const DiaryEditor = () => { const [input, setInput] = useState({ author: '', content: '', emotion: 1, }); const handleOnChange = (e) => { console.log(e.target.name); console.log(e.target.value); setInput({ ...input, [e.target.name]: e.target.value }); console.log(input); }; const handleSubmit = () => { console.log(input); alert('오늘의 일기가 저장되었습니다!'); }; return ( <div className='DiaryEditor'> <h2>오늘의 일기</h2> <div> <input name='author' value={input.author} onChange={handleOnChange} /> <p>{input.author}</p> </div> <div> <textarea value={input.content} name='content' onChange={handleOnChange} /> <p>{input.content}</p> </div> <div> <span>감정 지수 : </span> <select onChange={handleOnChange} name='emotion' value={input.emotion} > <option value={1}>1</option> <option>2</option> <option>3</option> <option>4</option> <option value={5}>5</option> </select> </div> <div> <button onClick={handleSubmit}>저장하기</button> </div> </div> ); }; export default DiaryEditor; Q2) 위처럼 input이란 state는 한단계씩 늦게 반영이 되는데, select태그의 value 속성을 주는 목적은 무엇인가요?? 인풋의 value 속성은 실시간으로 인풋의 값과 상태를 동기화해주는 목적으로 사용한다고 생각했는데, state가 곧바로 변하지 않는거면, 이 인풋의 value 속성은 무용지물인 것 아닌가라는 생각이 들어 질문드립니다. <select onChange={handleOnChange} name='emotion' value={input.emotion} > Q3) useState의 초기값은 반드시 빈문자열등으로 인자를 전달하는 게 나은가요? 아무 인자도 전달하지 않으면 어떤 잠재적인 에러 발생 가능성이 있는건가요?
해결됨
처음 만난 리액트(React)
분명히 코드를 그대로 따라 쳤는데 1초에 두 번씩 알림이 나오는 경우도 존재하나요? Warning: Each child in a list should have a unique "key" prop. 오류도 떴습니다. 각각 notification.jsx, notificationList.jsx 코드입니다 import React from "react" const styles = { wrapper: { margin: 8, padding: 8, display: 'flex', flexDirection: 'row', border: '1px solid grey', borderRadius: 16 }, messageText: { color: 'black', fontSize: 16 } } class Notification extends React.Component { constructor(props) { super(props) this.state = {} } render() { return ( <div style={styles.wrapper}> <span style={styles.messageText}>{this.props.message}</span> </div> ) } } export default Notification import React from 'react' import Notification from './notification' const reservedNotifications = [ { message: '안녕하세요, 오늘 일정을 알려드립니다.' }, { message: '점심식사 시간입니다.' }, { message: '이제 곧 미팅이 시작됩니다.' }, { message: '안녕하세요, 오늘 일정을 알려드립니다.' }, { message: '점심식사 시간입니다.' }, { message: '이제 곧 미팅이 시작됩니다.' }, { message: '안녕하세요, 오늘 일정을 알려드립니다.' }, { message: '점심식사 시간입니다.' }, { message: '이제 곧 미팅이 시작됩니다.' }, { message: '안녕하세요, 오늘 일정을 알려드립니다.' }, { message: '점심식사 시간입니다.' }, { message: '이제 곧 미팅이 시작됩니다.' }, ] var timer class NotificationList extends React.Component { constructor(props) { super(props) this.state = { notifications: [] } } componentDidMount() { const { notifications } = this.state timer = setInterval(() => { if(notifications.length < reservedNotifications.length) { const index = notifications.length notifications.push(reservedNotifications[index]) this.setState({ notifications: notifications }) } else { clearInterval(timer) } }, 1000) } render() { return ( <div> {this.state.notifications.map(v => { return <Notification message={v.message}/> })} </div> ) } } export default NotificationList
미해결
실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
저는 selenium 4.14 버전 사용중인데 service 관련 내용들을 지우면 실행이 되지 않는데 뭐가 문제일까요? 아래 오류가 뜹니다. driver = webdriver.Chrome () ^^^^^^^^^^^^^^^^^^ File "c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\selenium\webdriver\chrome\ webdriver.py ", line 45, in __init__ super().__init__( File "c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\selenium\webdriver\chromium\ webdriver.py ", line 51, in __init__ self.service.path = DriverFinder.get_path(self.service, options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages\selenium\webdriver\common\driver_ finder.py ", line 41, in get_path raise NoSuchDriverException(msg) from err selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for chrome using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
해결됨
실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
from bs4 import BeautifulSoup import requests keyword = input("검색할 제품을 입력하세요 : ") url = f"https://search.shopping.naver.com/search/all?query={keyword}" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" headers = {"User-Agent" : user_agent} req = requests.get(url, headers = headers) html = req.text soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product_item__MDtDF") print(items) print(len(items)) 네이버 쇼핑 크롤링 중 문의사항이 있어 글 남깁니다 위의 코드 처럼 네이버 쇼핑에서 검색 시 상품 정보 중 product_item__MDtDF를 받아와서 리스트를 만드려고 하는데 크롬 개발자도구에서는 11개로 검색되지만 위의 코드를 실행하여 '모니터'를 검색해보면 len가 1밖에 나오지 않습니다. product_item__MDtDF를 제외하고는 강의 내용과 동일한거 같은데 어디에 문제가 있는 걸까요..?
미해결
부트캠프에서 알려주지 않는 것들 (리액트 렌더링 최적화 편) 2편
강의의 useTransition을 사용한 부분에서 input 태그의 value를 deferedFilter로 설정하고 handleChange 내의 setFilter를 제거해도 문제가 없나요? 아니면 input에서 다루는 value와 Words를 렌더링하기 위한 filter value를 따로 관리해야 하나요? 이렇게 해도 문제가 없는지 궁금합니다!
미해결
블로그 자동화 프로그램 개발 강의 (파이썬 + 셀레니움)
안녕하세요. 수업 보면서 따라하고 있는데 처음부터 막히네요... 터미널창에 chromedriver_autoinstaller 설치를 하고 import를 하려고 하는데 수업 화면처럼 자동완성이 되지 않더니 터미널창에서 에러가 납니다. 재설치를 하려고 하면 이미 설치가 되었다고 나오는데, 설치가 된건데 import가 되지 않는건가요? ㅜㅜㅜ
미해결
파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
options = uc.ChromeOptions() 가져와서 아래쪽에 uc.Chrome () 실행할때 options가 안넣어져 있는데 안넣고 실행하는건가요??? 깃허브에 설명에는 driver = uc.Chrome(options=options) 이렇게 되어 있어 보이는데요?
해결됨
실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
셀레니움 버전도 3.14?였나 최신걸로 업데이트 하고 써서 웹드라이버 설치하는 것도 안해도 되는 상태인데요. 강의에서는 driver.get(url) 하면 창이 켜졌다 자동으로 꺼지던데 제꺼는 창이 자동으로 안꺼집니다... 뭔가 업데이트로 변경된 부분인가요? 창 안꺼지도록 하는 방법 강의 들으려는데 제꺼는 원래 안꺼져서 당황스럽네요
해결됨
Airflow 마스터 클래스
안녕하세요 mac 환경에서 강의를 수강하려고 합니다. 이러한 경우 wsl 설치 없이 다음 강의로 넘어가면 될까요??
해결됨
실전 프로젝트로 배우는 데이터 앱 만들기 with Python & Streamlit
theme 적용시, 강사님께서 말씀해주신 것처럼 작업 폴더에 .streamlit 폴더를 만들고, 그 안에 config.toml 파일을 만들어 테마 적용을 했지만, 아래의 문구가 발생하며, 태마가 적용이 되지 않습니다. The page that you have requested does not seem to exist. Running the app's main page. 어떤 이유 인지 알려주세요.
해결됨
실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
text가 하위 태그에 있는 문자열까지 가져온다는 것은 알겠습니다. 근데 string도 명확한 설명 부탁드립니다.. 강의에서 <a class="logo_naver"> <span class="blind">네 이버</span></a> 이걸로 예를 들었는데.. 공백도 문자열이잖아요. 강의에서도 그렇게 말씀하셨고. 그러면 위 html코드에 string을 불러오면 a태그 뒤의 공백 한칸을 가져와서 " " 이런 공백 한칸으로 이루어진 문자열이 나와야 할 것 같은데 None으로 나오죠.. 문자열인데 왜 None으로 나오는지 잘 모르겠습니다. 엔터가 들어가도 None으로 나오는 것 같은데... text는 알겠는데 string은 설명이 좀 부족한것 같아서 보충 설명 부탁드립니다.
미해결
실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다. 문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다. 코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다. 답변은 바로 제공되지 않을 수 있습니다. 실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다. import requests from bs4 import BeautifulSoup url = " https://naver.com " req = requests.get(url) html = req.text print(html) 주피터 노트에서는 실행이 되는데 비쥬얼스튜디오에서는 결과가 이렇게 나왔습니다. PS C:\Users\pw720> & C:/Users/pw720/AppData/Local/Programs/Python/Python311/python.exeon.exe AMD64)] on win32 Python 3.11.5 (tags/v3.11.5:cce6ba9, Aug 24 2023, 14:38:34) [MSC v.1936 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print(html) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'html' is not defined >>> print(html) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'html' is not defined >>> beautifulsoup4설치가 안되는것같아 cmd에서 설치했는데 제대로 안깔려서 안되는건가요?
미해결
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
예제 문제는 잘 풀리는데 백준에 제출하니까 시간초과가 뜹니다 강의 자료랑 큰 차이는 없어 보이는데 어느 부분을 고쳐야 시간 안에 계산 가능할까요? #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char **argv) { int n; int minX, minY, maxX, maxY; cin >> n; int arr[n][2]; for(int i=0; i<n; i++){ cin >> arr[i][0] >> arr[i][1]; } minX = arr[0][0]; maxX = arr[0][0]; minY = arr[0][1]; maxY = arr[0][1]; for(int i=1; i<n; i++){ if(arr[i][0]>maxX){ maxX = arr[i][0]; } else if(arr[i][0]<minX){ minX = arr[i][0]; } if(arr[i][1]>maxY){ maxY = arr[i][1]; } else if(arr[i][1]<minY){ minY = arr[i][1]; } } int arr_answer[n]; int arr_dis[n]; for(int i=minY; i<=maxY; i++){ for(int j=minX; j<= maxX; j++){ for(int l=0; l<n; l++){ int subY= 0, subX=0; subY = i-arr[l][1]; subX = j-arr[l][0]; arr_dis[l] = abs(subX) + abs(subY); } int sum = 0; for(int k=0; k<n; k++){ sum+=arr_dis[k]; if(i==minY && j ==minX){ arr_answer[k] =sum; } else if(sum < arr_answer[k]){ arr_answer[k] = sum; } } } } for(int i=0; i<n; i++){ cout << arr_answer[i] << " "; } return 0; }
해결됨
넓고 얕게 외워서 컴공 전공자 되기
안녕하세요 선생님! 동시성과 병렬성 관련해 기초가 약해 해당 강의를 들으면서 OS 부족한 부분을 많이 알게되어 도움이 많이되고 있습니다. 다름이 아니라 해당 강좌 범위는 벗어나지만.. 구글링해도 명확하게 해결되지 않아 질문 드립니다. 동시성을 구현하는 방법으로 멀티쓰레드 나 코루틴 방법으로 구현을 할 수있고 멀티쓰레드 방법에서 쓰레드 전환 간 context switch가 많기 때문에 오버헤드도 많아 Coroutine 방법을 많이 쓰고 또한 유저가 이벤트루프(스케쥴링)을 app에서 관리한다는 측면에서 디버그가 유용하다 정도로 이해하고 있습니다. 많은 블로그에서 멀티쓰레드보다 코루틴을 소개하면서 동시성 구현시 코루틴을 더 상위(혹은 좋은) 방법으로 서술이 많이 되어 있더라구요. I/O작업이 빈번할 경우 코루틴이 더 유리하다는 이해가 됩니다. 싱글스레드 + async 싱글스레드 멀티스레드 + async 멀티스레드 2개의 구현방법이 레이어가 다르다(thread와 task)보니 4가지 경우의 수를 적용할 수 있는데 실제 동시성을 적용해야되는 상황이면 어떻게 판단하고 최적의 구현방법(4가지 중 선택)을 적용할 수 있을까요? (파이썬 스택을 쓰고 있으며 GIL도 이해하고 있는 상태입니다.) 다시한번 해당 강의와 조금 벗어난 질문드려 죄송합니다. ( _ _ )