반응형
복세편살.
복잡한 세상 편하게 살기 위해 소프트웨어를 만들고 있건만
코딩하는 것이 쉽지가 않습니다.
그럴 때는? 역시 ChatGPT입니다.
저는 최근에 파이썬 코드를 짜면서 ChatGPT 무서움을 느끼고 있습니다.
예를 들어 requests 모듈이 아니라 비동기로 http get을 하는 코드를 만들고 싶을 때
이렇게 물어봅시다
이렇게 답변이 옵니다.
ChatGPT가 답변해준 코드 전문입니다.
import asyncio
import aiohttp
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
urls = ['https://www.example.com', 'https://www.google.com', 'https://www.amazon.com']
async with aiohttp.ClientSession() as session:
tasks = [asyncio.create_task(fetch(session, url)) for url in urls]
pages = await asyncio.gather(*tasks)
for page in pages:
print(page)
if __name__ == '__main__':
asyncio.run(main())
똑같이 물었을 때 상세하게 답변해주는 경우도 있습니다.
코드를 생성하는 수준이 상당해졌다는 것을 확인할 수 있네요.
해당 코드 전문입니다
pip install asyncio aiohttp
import asyncio
import aiohttp
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def process_page(page):
# Do something with the fetched webpage
pass
async def crawl_site(url):
async with aiohttp.ClientSession() as session:
html = await fetch(session, url)
await process_page(html)
urls = [
'https://example.com/page1',
'https://example.com/page2',
'https://example.com/page3',
# Add more URLs to crawl as needed
]
tasks = []
for url in urls:
tasks.append(asyncio.ensure_future(crawl_site(url)))
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(*tasks))
반응형