작성
·
186
0
저는 테슬라 키워드로 응용을 하고 있었는데요, 아래 기사에서
https://www.yna.co.kr/view/AKR20230706003700075?input=1195m
title을 어떻게 가져와야 할지, 일반화 되는 방법을 아무리 봐도 잘 모르겠습니다 ㅠ 본문은 #contents로 가져왔습니다. 도와주세요..
import requests
import time
from bs4 import BeautifulSoup
response = requests.get("https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%ED%85%8C%EC%8A%AC%EB%9D%BC")
html = response.text
soup = BeautifulSoup(html, 'html.parser')
articles = soup.select("div.info_group") # 뉴스 기사 div 10개 추출
for article in articles:
links = article.select("a.info")
if len(links) > 1: # 링크가 2개 이상이면
url = links[1].attrs['href'] # 두번째 링크의 herf를 추출
# requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer')) 방지를 위해 header 추가
response = requests.get(url, headers={'User-agent': 'Mozila/5.0'})
html = response.text
soup = BeautifulSoup(html, "html.parser")
content = soup.select_one("#contents")
print(content.text)
time.sleep(0.3)
답변 1
0
h2 태그의 선택자를 만들어서 찾아 오면 됩니다 ^^
import requests
import time
from bs4 import BeautifulSoup
response = requests.get("https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%ED%85%8C%EC%8A%AC%EB%9D%BC")
html = response.text
soup = BeautifulSoup(html, 'html.parser')
articles = soup.select("div.info_group") # 뉴스 기사 div 10개 추출
for article in articles:
links = article.select("a.info")
if len(links) > 1: # 링크가 2개 이상이면
url = links[1].attrs['href'] # 두번째 링크의 herf를 추출
# requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer')) 방지를 위해 header 추가
response = requests.get(url, headers={'User-agent': 'Mozila/5.0'})
html = response.text
soup = BeautifulSoup(html, "html.parser")
title = soup.select_one("#title_area") # 제목
content = soup.select_one("#contents")
print(title.text, content.text)
time.sleep(0.3)