파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요. 선생님. 각 웹사이트에서 크롤링에 대한 가능범위를 robots.txt에서 확인할 수 있다고 하셨습니다. robots.txt에 대한 부분을 확인할 수 있는 경우도 있지만 사실 robots.txt에 대해 명시하지 않는 사이트들도 많아서, 이런 경우에는 해당 웹사이트가 크롤링에 대해 어떤 스탠스를 취하고 있는지 어려운 경우가 있습니다. CU편의점 웹사이트는 Request Blocked 메시지를 띄운다던가, 어떤 웹사이트는 400번 에러를 내며 크롤링 가능범위를 보여주지 않습니다. 이런 경우에는 웹사이트가 어떤 스탠스를 갖고 있다고 판단하면 될까요? 또한, 블로그와 같은 개인적인 공간에 특정 웹사이트를 크롤링하는 코드를 올리는 것은 문제의 소지가 있을까요? 강의 감사히 듣고 있습니다. 감사합니다.
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
현재 몽고디비에 데이터가 잘들어가는지 확인하기 위해서 odmantic을 설치한 이후로 오류가 떴고 이러한 오류가떴고 확인 해보니 from odmantic import AIOEngine 문제라는 판단으로 pip install --upgrade odamantic을 했지만 별 효과가 없어서 문의하게되었습니다. 추가적으로 하다보니 init .py 이했을떄는 문제없고 mongodb.connect할 때 문제인데 mongodb의 연결문제라고 생각중입니다 Process SpawnProcess-1: Traceback (most recent call last): File "C:\Users\hs091\anaconda3\lib\multiprocessing\process.py", line 315, in _bootstrap self.run() File "C:\Users\hs091\anaconda3\lib\multiprocessing\process.py", line 108, in run self._target(*self._args, **self._kwargs) File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\_subprocess.py", line 76, in subprocess_started target(sockets=sockets) File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\server.py", line 61, in run return asyncio.run(self.serve(sockets=sockets)) File "C:\Users\hs091\anaconda3\lib\asyncio\runners.py", line 44, in run return loop.run_until_complete(main) File "C:\Users\hs091\anaconda3\lib\asyncio\base_events.py", line 642, in run_until_complete return future.result() File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\server.py", line 68, in serve config.load() File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\config.py", line 467, in load self.loaded_app = import_from_string(self.app) File "C:\Users\hs091\anaconda3\lib\site-packages\uvicorn\importer.py", line 21, in import_from_string module = importlib.import_module(module_str) File "C:\Users\hs091\anaconda3\lib\importlib\__init__.py", line 127, in import_module return bootstrap.gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in gcdimport File "<frozen importlib._bootstrap>", line 1007, in findand_load File "<frozen importlib._bootstrap>", line 986, in findand_load_unlocked File "<frozen importlib._bootstrap>", line 680, in loadunlocked File "<frozen importlib._bootstrap_external>", line 850, in exec_module File "<frozen importlib._bootstrap>", line 228, in callwith_frames_removed File "C:\Users\hs091\studyDs\teaching-async-python-main\6-실전-프로젝트-콜렉터스\app\main.py", line 5, in <module> from app.models import mongodb File "C:\Users\hs091\studyDs\teaching-async-python-main\6-실전-프로젝트-콜렉터스\app\models\__init__.py", line 2, in <module> from odmantic import AIOEngine File "C:\Users\hs091\anaconda3\lib\site-packages\odmantic\__init__.py", line 1, in <module> from .bson import ObjectId File "C:\Users\hs091\anaconda3\lib\site-packages\odmantic\bson.py", line 11, in <module> from pydantic.datetime_parse import parse_datetime File "C:\Users\hs091\anaconda3\lib\site-packages\pydantic\_migration.py", line 295, in wrapper raise PydanticImportError(f'`{import_path}` has been removed in V2.') pydantic.errors.PydanticImportError: pydantic.datetime_parse:parse_datetime has been removed in V2. For further information visit https://errors.pydantic.dev/2.1.1/u/import-error
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
현재 혼자 처음시작부터 따라하는 부분으로써 두가지의 오류가 있었고 init .py에서는 이부분에서 config에서 가져오는 MONGO_DB_NAME의 문제가있는데 config나 secrets에서 철자 틀린건 없었습니다 오류내용은 line too long (81 > 79 characters)Flake8(E501) 이오류인데 flake의 잘못인가요?? main.py 에서 그냥 import 오류인 app.models.mongodb' imported but unusedFlake8(F401) 똑같은 문제인것같습니다
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
pip install flask를 했는데 설치 하는 도중에 마지막에 WARNING: You are using pip version 21.2.3; however, version 23.2.1 is available. You should consider upgrading via the 'C:\Users\hs091\FastAPI\venv\Scripts\python.exe -m pip install --upgrade pip' command. 이러한 오류가떴었고 pip install --upgrade pip를 했지만 이겄도한 pip help install 이러한 오류가뜨게됩니다 방안이있을까요?
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
window 에서하는 중인데 비주얼스튜디오코드를 설치를 햇는데 아예 (base)라는 부분이 뜨지가 않습니다. hello.py를 하면 잘나오는 부분은 있습니다. 또한 .\venv\Scripts\activate.bat 명령어를 치면 기존 터미널에 있던 문자들이 알아서 clear가 되지만 가상환경인지 잘모르는 부분이됩니다.
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=todos -e MYSQL_DATABASE=todos -d -v todos:/db -–name todos mysql:8.0 터미널에서 위 명령어 실행하면, docker: Invalid containerPort: 3306 -e. 이런 오류가 발생합니다. ㅠㅠ 참고로 docker 처음 써보는 초급입니다.
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
윈도우10 입니다 강의 영상대로 따라하고 있었는데 flask 실행하는 부분 python hello.py 실행 x python3 hello.py 실행o requests 실행하는 부분 python hello.py 실행o python3 hello.py 실행 x 같은 가상환경인데 flask 실행할때는 python에 3을 붙여야 실행하고 requests에서는 python에 3을 붙이지 않아야 실행을 하는데 같은 py파일에 코드만 바꿔서 했는데 이러는데 왜 이러는건가요...?
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요, await 위치를 완전히 이해하지 못한 것 같아 질문드립니다. 제가 이해한 await란 비동기 함수 내에서 특정 객체가 끝날때까지 기다려서 결과를 반환하기 위해 사용하는 것인데요. 이를 간단하게 말하자면 비동기 함수 내에서 동시성을 가지고 처리해야 할 부분(= 탈출해야할 부분) 앞에 기다리라는 의미로 await를 쓴다고 이해한 것이 맞을까요?
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요 코루틴 활용 파트에서 코드를 실행해보니 raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed 라고 문구가 뜨네요.. aiohttp 3.7.3 버전 인스톨하는데 3.7.4.post0으로 다운이 되었구요. 해결책 좀 알려주시면 감사하겠습니다.
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요. 04-2-coroutine-fetcher.py에서 fetcher 함수에서 url을 언패킹하실 때 * 를 사용하셨는데 아래 코드에서 가 어떻게 작동하는건지 알 수 있을까요? result = await asyncio.gather(*[fetcher(session, url) for url in urls])
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요. cpu 연산 관련해서 질문드립니다. 동시성과 병렬성 각각 cpu연산이 어떤식으로 나누어서 진행되는 것일까요? 연산이 아닌 네트워크인 경우에는 각 작업별인 것을 이해했는데, 연산일 경우 예시를 들어서 설명해주시면 감사하겠습니다. 그리고 이제 파이썬 웹 개발을 막 완료한 초급 개발자인데, 내용이 너무 어려워서..이해가 잘 안되는데 반복하면 될까요? ㅜㅜ추가적인 공부방법도 알려주시길 부탁드립니다.