inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

텍스트를 포함하는 태그 찾기 (feat.정규표현식)

적힌대로 해보고 있는데 크롤링 되다가 멈춥니다.

259

kshssi

작성한 질문수 12

1

강의보고 따라하고 있는데 

크롤링이 진행되다가 멈추네요

먼저 브랜드 내임만 가져와서 코드가 정상적으로 작동하고 있는지 출력해보았는데 아래와같이 결과가 나오다가 멈추고 정상적으로 작동하면 입력커서가 다시 깜박이어야 하는데 그런것도 없이 멈춰버립니다.

 

 

홈플래닛

로지텍

 

샤오미

홈플래닛

 

 

PYHO

 

 

샤오미

코시

import requests
from bs4 import BeautifulSoup

main_url = 'https://www.coupang.com/np/search?component=&q=%EB%A7%88%EC%9A%B0%EC%8A%A4&channel=user'
response = requests.get(main_url, headers={'User_Agent' : 'Mozila/5.0'})
html = response.text
soup = BeautifulSoup(html, 'html.parser')
links = soup.select("a.search-product-link")

for link in links:
sub_url = "https://www.coupang.com/" + link.attrs['href']
response = requests.get(sub_url, headers={'User_Agent' : 'Mozila/5.0'})
html = response.text
soup = BeautifulSoup(html, 'html.parser')

brand_name = soup.select_one("a.prod-brand-name").text
print(brand_name)

 

 

python 웹-크롤링

답변 2

1

kshssi

위에 적어준 코드로 사용해봐도 작동이 안되네요...

일반적인 코딩 오류처럼 오류 메세지가 나오는게 아니라 

명령프롬트 창에서 코딩이 실행된다는 메세지가 나오고 그 상태에서 아무런 움직임도 변화도 없습니다 ㅠㅠ

 

m1맥북에서 VScode로 사용중이구요

0

스타트코딩

지금 확인해 봤는데 오타 다시 한번 확인해 보시겠어요?

언더바(_)가 아니라 대시(-)를 사용해야 합니다.ㅎㅎ

User-Agent

0

스타트코딩

쿠팡 사이트에서 업데이트가 있었나 보네요.

 

제가 확인 후 답변드리고,

해당강의내용 수정하겠습니다.

 

우선, 다른 예제 부터 진행해 보세요 :)

0

스타트코딩

안녕하세요.

for 문을 작성 후에 들여쓰기(Tab)를 해줘야 합니다. 

아래 코드를 확인해 보세요 :)

 

import requests
from bs4 import BeautifulSoup

main_url = "https://www.coupang.com/np/search?component=&q=usb%ED%97%88%EB%B8%8C&channel=user"

# 헤더에 User-Agent를 추가하지 않으면 오류가 나요 (멈춰버림)
response = requests.get(main_url, headers={'User-Agent' : 'Mozila/5.0'})
html = response.text
soup = BeautifulSoup(html, 'html.parser')

links = soup.select("a.search-product-link") # select의 결과는 리스트 자료형
for link in links:
    sub_url = "https://www.coupang.com/" + link.attrs['href']

    response = requests.get(sub_url, headers={'User-Agent' : 'Mozila/5.0'})
    html = response.text
    soup = BeautifulSoup(html, 'html.parser')

    # 브랜드명은 있을 수도 있고, 없을 수도 있어요
    # - 중고상품일 때는 태그가 달라져요
    # try - except로 예외처리를 해줍니다
    try:
        brand_name = soup.select_one("a.prod-brand-name").text
    except:
        brand_name = ""
   
    # 상품명
    product_name = soup.select_one("h2.prod-buy-header__title").text

    # 가격
    product_price = soup.select_one("span.total-price > strong").text

    print(brand_name, product_name, product_price)

셀레니움 환경설정 오류

0

51

2

네이버 로그인 관련

0

271

2

안녕하세요 셀레니움에 대해서 질문

0

87

1

크롤링 연습사이트 문의

0

97

2

선택자 질문

0

71

2

'특정 요소가 나타날 때까지 스크롤' 부분 에러

0

78

2

자동 로그인 질문

0

89

2

44강 제목, 링크

0

105

1

원하는 값이 없을 때

0

90

2

크롤링한 링크가 엑셀로 들어가면 작동이 안되요

0

227

2

셀레니움 PDF자료는 받을 수 있나요

0

100

2

글목록 추출하기

0

98

2

메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문

0

89

2

강의 노트가 어디에 있는건가요?

0

80

2

강의 커리큘럼 질문

0

98

1

조건문 else 사용하지 않는 이유

0

76

2

셀레니움으로 접근할 수 없는 경우

0

95

2

웹페이지 변경

0

72

2

자바스크립트로 태그 선택 시 질문입니다.

1

64

2

수료증은 어떻게 받나요?

0

120

2

class명을 활용하여 선택자를 만들지 않는 경우..?

0

61

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

202

2