inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

선택에서 제외시키기

MissingSchema오류

832

JYKim

작성한 질문수 2

1

안녕하세요. 덕분에 열심히 공부하고 있습니다. 알려주신 방법을 활용해서 다음뉴스 본문 크롤링을 시도하고 있습니다. for article로 했을 때 url도 가져와지지 않아 url 가져오기는 성공했던 for link 방법으로 url목록을 가져온 후 다시 request를 해서 soup를 프린트해봤는데 html정보를 모두 가져오지 않고, 아래와 같은 오류가 발생합니다. 코드는 오류 아래 붙여넣었습니다. 답변주시면 정말 감사드리겠습니다!!
 
line 16, in <module> response = requests.get(url, headers={'User-agent':'Mozila/5.0'}) File "C:\ProgramData\Anaconda3\lib\site-packages\requests\api.py", line 76, in get return request('get', url, params=params, **kwargs) File "C:\ProgramData\Anaconda3\lib\site-packages\requests\api.py", line 61, in request return session.request(method=method, url=url, **kwargs) File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 516, in request prep = self.prepare_request(req) File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 449, in prepare_request p.prepare( File "C:\ProgramData\Anaconda3\lib\site-packages\requests\models.py", line 314, in prepare self.prepare_url(url, params) File "C:\ProgramData\Anaconda3\lib\site-packages\requests\models.py", line 388, in prepare_url raise MissingSchema(error) requests.exceptions.MissingSchema: Invalid URL '/breakingnews/politics': No schema supplied. Perhaps you meant http:///breakingnews/politics?
 
import requests
from bs4 import BeautifulSoup

response = requests.get("https://news.daum.net/breakingnews/politics")
html = response.text
soup = BeautifulSoup(html, "html.parser")
links = soup.select("a.link_txt")

articles = soup.select("div.cont_thumb") # 뉴스 기사 div 10개 추출
for link in links:
    title = link.text #태그 안에 텍스트 요소를 가져온다
#    print(title)
    url = link.attrs['href'] #href의 속성값을 가져온다
    #print(title,url)
    #print(url)
    response = requests.get(url, headers={'User-agent':'Mozila/5.0'})
    html = response.text
    soup = BeautifulSoup(html, "html.parser")
    print(soup)

웹-크롤링 python

답변 1

0

스타트코딩

안녕하세요.

코딩을 가장 쉽게 알려주는 크리에이터, 스타트코딩입니다.

 

a 태그들을 가져올 때, 뉴스기사 링크가 아닌 녀석들이 포함되어 있어요.

자식 선택자를 이용하면 뉴스기사 링크들만 추출할 수 있습니다.

 

import requests

from bs4 import BeautifulSoup



response = requests.get("https://news.daum.net/breakingnews/politics")

html = response.text

soup = BeautifulSoup(html, "html.parser")

links = soup.select("strong.tit_thumb > a.link_txt")



articles = soup.select("div.cont_thumb") # 뉴스 기사 div 10개 추출

for link in links:

    title = link.text #태그 안에 텍스트 요소를 가져온다

#    print(title)

    url = link.attrs['href'] #href의 속성값을 가져온다

    print(title,url)

    #print(url)

    response = requests.get(url, headers={'User-agent':'Mozila/5.0'})

    html = response.text

    soup = BeautifulSoup(html, "html.parser")

셀레니움 환경설정 오류

0

80

2

네이버 로그인 관련

0

369

2

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

0

104

1

크롤링 연습사이트 문의

0

122

2

선택자 질문

0

89

2

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

0

91

2

자동 로그인 질문

0

107

2

44강 제목, 링크

0

115

1

원하는 값이 없을 때

0

106

2

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

0

252

2

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

0

108

2

글목록 추출하기

0

111

2

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

0

100

2

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

0

82

2

강의 커리큘럼 질문

0

112

1

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

0

84

2

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

0

109

2

웹페이지 변경

0

83

2

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

1

72

2

수료증은 어떻게 받나요?

0

129

2

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

0

67

2

드라이버가 안 열려요

0

90

2

이거 해결방법 아시는 분?

0

124

2

네이버 지식인 크롤링..

0

217

2