묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
get_text(), string
안녕하세요 수업듣다가 <body>태그를 크롤링 할때에 .get_text()는 데이터를 가져오는 반면에 .string은 None타입이 반환됩니다. .get_text()가 더 범용적인거같은데 이것만 써도 되나요?
-
미해결Github Action을 활용한 크롤러 웹 페이지 만들기
push 작업 중 아래와 같은 에러가 발생합니다.
크롤링 데이터 파일 생성 후 나에게 push하기 강의 실습 중 위의 에러가 발생했습니다.아래는 제 main.yml 파일입니다.name: helloGithubAction on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: # 개인 토큰을 사용할 것인지 말 것인지 persist-credentials: false - name: 1. pip 업그래이드 run: python -m pip install --upgrade pip - name: 2. 환경 설정 run: pip install -r requirements.txt - name: 3. 파이썬 실행 run: python test_crawl_2.py - name: Commit files run: | git config --local user.email "hajuny129@gmail.com" git config --local user.name "HaJunYoo" git add . git commit -m "Run crawler and update current data" - name: Push changes uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }}
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
크롤링 로켓배송 제외
안녕하세요. 문의드립니다.쿠팡 로켓배송 크롤링강의를 보고 쿠팡 1~10(위에 빨간리본상품) 중 로켓배송상품, 광고상품을 빼고 상품의 이름을 가져오고 싶은데요. 강의 보고 어떻게 적용을 해야할지 해매고 있어 문의드립니다.초보라 모르는게 많네요. 도와주세요~
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
쿠팡 1강 실행, 에러문구
쿠팡 1강따라서 실행했는데 이렇게 에러가 나는데요. 어떻게 해야 할까요?import requests from bs4 import BeautifulSoupbase_url = "https://www.coupang.com/np/search?component=&q="keyword = input('검색할 상품을 입력하세요:')search_url = base_url + keyword print(search_url)headers = {'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'}cookie = {"a": "b"} req = requests.get(search_url, timeout=5, headers=headers, cookies=cookie)print(req.status_code) 결과: 검색할 상품을 입력하세요:모니터https:https://www.coupang.com/np/search?component=&q=모니터Traceback (most recent call last):File "d:\main3.py", line 17, in <module>req = requests.get(search_url, timeout=5, headers=headers, cookies=cookie)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
강의 자료
자료실에 있는 문제들을 다운받고 실행하려고 하는데, 비주얼 스튜디오에서만 열리고 주피터에서는 열리지 않습니다. 문제 풀기 조금 힘든 상황인데 어떻게 하면 될까요 - 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
모달 스크롤 문의
안녕하세요 셀리니움 스크립트를 작성하고 있는데 페이지 내 임의 모달 호출 후 해당 모달 리스트를 스크롤 동작하는걸 작성하고 싶은데 계속 오류가 나고 있습니다. 어떻게 해야 하는지 문의 드립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버 주식 크롤링 종목명 에러
선생님 안녕하세요좋은 강의 감사합니다. 강의 코드와 조금 다르게 작성을 해보았는데요네이버 주식 크롤링 부분에서 종목명을 가져오는 경우 에러가 발생해서 도움을 요청드립니다. 네이버증권 코드는 아래와 같이 되어있는데요 trs = soup.select("table.type_2 > tbody > tr[onmouseover='mouseOver(this)']") # class가 number로만 되어있고 안쪽에 잇는 것들이 구분이 안된다. # n번째 td 를 가져오도록 설정하면 된다. nth-child가 안되므로 다른 방법 사용 for tr in trs: name = tr.select_one('a.title').text이라고 작성하면 nonetype은 text가 없다는 에러가 뜹니다. name = tr.select_one('td > a.title').text라고 작성해도 똑같은 오류가 뜨는데, 제가 보기에는 맞는 코드 같거든요;;; 혹시 어디가 잘못된 것인지 말씀이 가능하실까요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
크롤링 데이터 가공 후 입력창에 넣기
수업 잘 듣고 있습니다.자동화를 하고 싶으서 예전 영상 보다가 최근에 다시 올라와서 보는 중 강의 발견하고 바로 수강해서 듣고 있습니다. 궁금한 것이 하나 있는데요.셀레니움에서 하나의 윈도우 창의 특정 태그 값을 찾아서다른 윈도우 창을 오픈 한 후 특정 필드에 값을 넣을 수 있나요?
-
미해결쉽게 처음하는 파이썬 고급 크롤링 [Scrapy, Selenium, Headless Chrome]
headless chrome 오류 문의
안녕하세요 headless chrome 오류 문의 드립니다.위 코드 실행 시..WebDriverException: Message: unknown error: Chrome failed to start: was killed. 오류문구가 뜨는데크롬 드라이버 이슈가 있는 걸까요???크롬, 크롬드라이버는 110버전으로 사용하고 있습니다.추가로 셀레니움은 잘됩니다!!
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
구글 무비 강좌에서요
movies=soup.find_all("div",attrs={'class':'???}) title=movie.find('span',attrs={'class':'???'}).get_text()attrs 값을 못찾겠습니다.
-
해결됨남박사의 파이썬 기초부터 실전 100% 활용
list.reverse() 출력에 대해서 질문있습니다.
안녕하세요. 남박사님. list() 데이터 구조에서 reverse() 메서드의 결과값이 이해가 안되서 질문을 남기게 되었습니다.a=[4,5,6,1,2,3] a.sort() print(a) b=[4,5,6,1,2,3] b.reverse() print(b)[1, 2, 3, 4, 5, 6] [3, 2, 1, 6, 5, 4]sort()는 정방향 정렬, reverse()는 역방향 정렬이라고 배웠는데요. 역방향 정렬의 결과값이 제가 생각했을 때는 [6,5,4,3,2,1]로 출력되어야 할것 같은데 제 예상과는 반대로 [3,2,1,6,5,4]로 출력되고 있습니다. 왜 그런지 궁금합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
엑셀(구글)시트에 크롤링 하는 경우 열 변경시 문제
선생님 안녕하세요좋은 강의 감사합니다. 강의 외적으로 질문드립니다. 정기적으로 크롤링을 해와서 엑셀에 정보를 업데이트 하는 것을 하고 싶은데요 예를 들어, A열에 종목번호, B열에 종가를 넣다가, 갑자기 두 열 사이에 하나 열을 추가해서 다른 정보를 넣어야 할때가 많은데요(예를 들어, PER나 PBR같은 정보) 이런 경우에 B열로 종가를 불러오게 하면 계속 정보가 덧쓰일것 같아서요.이 경우, B열로 불러오라는 코드를 수정하지 않고, 자동으로 C열로 밀리도록 코딩을 하려면 어떻게 해야 하나요?
-
미해결실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
다음 업데이트는 어떤 내용인지 알수있을까요?
강의 잘 보고있습니다.다음 업데이트는 어떤 내용이 올라올지 궁금해서 질문올립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
주식 데이터 상한가를 크롤링 하고 싶은데 방법을 모르겠습니다.
주식데이터를 크롤링 할때 품목의 현재가를 가져올때는 id="_nowVal" 라는 고유의 id가 있어서 가져왔는데 상한가를 가져올때는 특별한 고유 id가 없는데 어떤식으로 크롤링을 해야하는건가요??
-
해결됨네이버 카페 DB 추출 프로그램 개발 강의 [selenium]
이강의도
솔직히 들어본 결과처음에 파이썬 셀레니움 이나 poser 크롬 드라이브 설치부터 0강의에 넣어 두시는 게 ...좋을 거 같아요추가적으로 GUI강좌 까지 하시면 가격 더 올려도많은 사람들이 한번 볼 꺼 같습니다 아무튼 같은 부산 사람이라 강의 한번 들었는데정말 설명을 잘하시네요 ^^
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
뉴스 본문 내용 크롤링 응용
import requests from bs4 import BeautifulSoup respones = requests.get("https://www.coupang.com/np/categories/498917") html = respones.text soup = BeautifulSoup(html,'html.parser') item = soup.select(".baby-product-link") # 쿠팡 아이템 1페이지 모두 지정 for items in item: print(f"{pn}페이지 입니다=========================") name = items.select("div.name") #리스트 url = items.attrs['href'] #두번째 링크의 href를 추출 그리고 url에 저장 response = requests.get(url, headers={'user-agent' : 'mozila/5.0'}) # headers={'user-agent' : 'mozila/5.0'}로 기계같이 보이는 오류를 막음 #받아온 url들을 다시 불러옴 html = response.text # 받아온걸 텍스트로 변환 soup = BeautifulSoup(html,'html.parser') # 알아보기쉽게 만들어줌 img = soup.attrs[".src"]# 본문이 가지고 있는 자신만의 태그로 지정 print (name,img) pn = pn + 1이런식으로 응용 해보았는데 실행을 하면 오류도 없고 아무 동작이 없네요 .. 이런 경우 어떻게 해야하죠 ? 터미널에는 아무 글도 안떠요 그냥 파일 경로만 뜹니다
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
8분 46초 질문
a태그에 클래스명이 nav이면서 shop클래스 동시에 갖고있는 녀석이라 하셨는데, 띄어쓰기로 되어 있으면 . 으로 구분해주면 되는 건가요? 쇼핑 옆에 Pay를 열어보려고 해봤는데 못하겠습니다. 쇼핑은 마우스 올려놓으면 a.nav.shop이라 뜨지만 나머지들은 a.nav라고만 뜨는게 많은데 얘네들은 어떻게 해야하나요?? 제가 질문한 내용들이 실전편에 나오나요??
-
해결됨실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용
추출한 데이터를 판다스 데이터프레임으로 만들고 엑셀파일로 만드는 내용 추가
크롤링 잘 배우고 있습니다. 추가 요청사항이 있는데요. 추출한 데이터를 판다스 데이터프레임으로 만들고 엑셀파일로 만드는 내용도 추가되면 다양하게 활용하는데 좋을 것 같습니다.
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
네이버 IT뉴스 화면 requets.get 에러가 발생합니다ㅜ
네이버 IT 뉴스 링크를 그냥 크롬이나 사파리를 통해서 접속하면 정상적으로 잘 접속이 됩니다.하지만 requests.get을 사용하면 에러가 발생해 파싱을 정상적으로 하기 힘든 상황입니다.ㅠ셀레니움을 사용하던지 다른 뉴스 페이지를 사용해야할거같습니다.저의 경우는 구글뉴스를 파싱 했습니다.좋은 강의 해주셔서 감사합니다.! import re import requests from bs4 import BeautifulSoup weather_url = "https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&query=%EC%84%9C%EC%9A%B8+%EB%82%A0%EC%94%A8&oquery=%EC%84%9C%EC%9A%B8+%EB%82%A0%EC%8B%9C&tqi=h%2B4nksprvTVssQv3%2BkdssssstAZ-264690" news_url = "https://www.google.com/search?q=%EA%B5%AC%EA%B8%80%EB%89%B4%EC%8A%A4&rlz=1C5CHFA_enKR979KR979&source=lnms&tbm=nws&sa=X&ved=2ahUKEwio8ZP_jIP9AhXnm1YBHfaRBAUQ_AUoAXoECAEQAw&biw=1057&bih=976&dpr=1" english_url = "https://www.hackers.co.kr/?c=s_eng/eng_contents/I_others_english&keywd=haceng_submain_lnb_eng_I_others_english&logger_kw=haceng_submain_lnb_eng_I_others_english" headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36", "Accept-Language":"ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7" } def create_soup(url): res = requests.get(url, headers=headers) res.raise_for_status() return BeautifulSoup(res.text, "lxml") def get_weather_info(): soup = create_soup(weather_url) current_temp = soup.find("div", attrs={"class": "temperature_text"}).get_text().strip().split()[-1][2:] compare = soup.find("p", attrs={"class": "summary"}).get_text() summary_list = soup.find("dl", attrs={"class": "summary_list"}).get_text().strip() dust = soup.find_all("li", attrs={"class": "item_today level1"})[0].get_text().strip() micro_dust = soup.find_all("li", attrs={"class": "item_today level1"})[1].get_text().strip() uv = soup.find("li", attrs={"class": "item_today level2"}).get_text().strip() sunset = soup.find("li", attrs={"class": "item_today type_sun"}).get_text().strip() rain_ratio = soup.find("li", attrs={"class": "week_item today"}).find_all("span", attrs={"class": "weather_left"}) rain_ratio_am = rain_ratio[0].get_text().strip() rain_ratio_pm = rain_ratio[1].get_text().strip() print("현재 기온 : {}".format(current_temp)) print(compare) print(summary_list) print("{} / {} / {} / {}".format(dust, micro_dust, uv, sunset)) print("강수 확률 : {} / {}\n".format(rain_ratio_am, rain_ratio_pm)) def get_news_headline(): soup = create_soup(news_url) headlines = soup.find_all("div", attrs={"class": "mCBkyc ynAwRc MBeuO nDgy9d"}, limit=6) urls = soup.find_all("a", attrs={"class": "WlydOe"}, limit=6) for idx, headline in enumerate(headlines): print(headline.get_text()) print(urls[idx]["href"] + "\n") def get_eng_sentence(): soup = create_soup(english_url) expression = soup.find_all("b", attrs={"class": "conv_txtTitle"}) sentences = soup.find_all("div", attrs={"id": re.compile("conv_kor_t\d*")}) print("\n< 오늘의 영어 회화 >") print("한글 표현") print("* " + expression[0].get_text()) for sentence in sentences[0:len(sentences)//2]: print(sentence.get_text().strip()) print("\n영어 표현") print("* " + expression[1].get_text()) for sentence in sentences[len(sentences) // 2:]: print(sentence.get_text().strip()) def main(): get_weather_info() get_news_headline() get_eng_sentence() if __name__ == "__main__": main()
-
미해결파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)
23년 2월 7일, 다음 부동산 화면이 다름
23년 2월 7일 현재, 강의해주신 다음부동산의 화면이 상이해 네이버 부동산을 이용해서 비슷하게 따라해봤습니다.import requests from bs4 import BeautifulSoup url = "https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&query=%EC%86%A1%ED%8C%8C+%ED%97%AC%EB%A6%AC%EC%98%A4%EC%8B%9C%ED%8B%B0+%EB%A7%A4%EB%AC%BC&oquery=%EC%86%A1%ED%8C%8C+%ED%97%AC%EB%A6%AC%EC%98%A4%EC%8B%9C%ED%8B%B0+%EB%A7%A4%EB%A7%A4&tqi=h%2B4thwprvmZss6uUL7ossssstOZ-299895" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") houses = soup.find_all("tr", attrs={"class": {"_land_tr_row"}}) for num, house in enumerate(houses): info = house.get_text().split() print(f"=========={num+1}번 매물==========") print(f"매매 방식 : {info[0]}") print(f"매물 위치 : {info[1]}") print(f"매물 이름 : {info[2]}") print(f"동 : {info[3][:4]}") print(f"거래 부동산 : {info[3][4:]}") print(f"면적 : {info[4]}") print(f"가격 : {info[5]} 만원") print(f"층 : {info[-2]}")