03. 연예뉴스크롤링하기에 질문 있습니다.
0
import requests
from bs4 import BeautifulSoup
import time
response = requests.get(
"https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%EB%B8%94%EB%9E%99%ED%95%91%ED%81%AC")
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) >= 2: # 링크가 2개 이상이면
url = links[1].attrs['href'] # 두번째 링크의 href를 추출
response = requests.get(url, headers={'User-agent':'Mozila/5.0'})
html = response.text
soup = BeautifulSoup(html, 'html.parser')
# 만약 연예 뉴스라면
if "entertain" in response.url:
title = soup.select_one(".end_tit")
content = soup.select_one("#articleBody")
else:
title = soup.select_one(".media_end_head_headline")
content = soup.select_one("#dic_area")
print("====링크====", url)
print("====제목====", title.text.strip())
print("====본문====", content.text.strip())
time.sleep(0.3)
위와 같이 코드를 짜고 실행했는데,
https://entertain.naver.com/read?oid=629&aid=0000209267
이사이트 차례가 되자 content를 못 뽑아냅니다.
다음과 같은 에러를 나타냅니다.
====링크==== https://n.news.naver.com/mnews/article/629/0000209267?sid=106
====제목==== 블랙핑크 지수, 요란하지 않은 '꽃'의 유혹[TF초점]
Traceback (most recent call last):
File "C:\Users\asd20\Desktop\startcoding_crawling\Chapter04\03.연예뉴스크롤링하기.py", line 27, in <module>
print("====본문====", content.text.strip())
AttributeError: 'NoneType' object has no attribute 'text'
개발자도구를 눌러 html 구조를 확인해봐도 원인을 잘 모르겠습니다.
python
웹-크롤링
셀레니움 환경설정 오류
0
42
2
네이버 로그인 관련
0
234
2
안녕하세요 셀레니움에 대해서 질문
0
81
1
크롤링 연습사이트 문의
0
93
2
선택자 질문
0
71
2
'특정 요소가 나타날 때까지 스크롤' 부분 에러
0
76
2
자동 로그인 질문
0
84
2
44강 제목, 링크
0
99
1
원하는 값이 없을 때
0
88
2
크롤링한 링크가 엑셀로 들어가면 작동이 안되요
0
224
2
셀레니움 PDF자료는 받을 수 있나요
0
100
2
글목록 추출하기
0
96
2
메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문
0
86
2
강의 노트가 어디에 있는건가요?
0
80
2
강의 커리큘럼 질문
0
95
1
조건문 else 사용하지 않는 이유
0
73
2
셀레니움으로 접근할 수 없는 경우
0
95
2
웹페이지 변경
0
70
2
자바스크립트로 태그 선택 시 질문입니다.
1
62
2
수료증은 어떻게 받나요?
0
116
2
class명을 활용하여 선택자를 만들지 않는 경우..?
0
59
2
드라이버가 안 열려요
0
78
2
이거 해결방법 아시는 분?
0
121
2
네이버 지식인 크롤링..
0
200
2

