인프런 커뮤니티 질문&답변
MissingSchema오류
작성
·
823
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)
답변 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")





