-문제점:
웹개발종합반 과정에서 항상디비에 넣어줬다가 그걸 get방식으로 받아오는 식으로 했었는데
간단한 크롤링을 디비에 안넣어줘도 될꺼같다.
-해결방밥:
아래의 코드를 보면 BeautifulSoup패키지로 크롤링을한뒤 doc딕셔너리 안에 넣어주고
원래는 doc를 DB에 넣어주었는데 그냥 리스트로 만들어서 바로 보내줄수도있다.
그래서 news_list[]를 for문 밖에서 만들어주고 append()를 써서 리스트에 딕셔너리를 한덩어리씩 넣어주는 코드이다
@app.route('/tech',methods=['GET'])
def tech_get():
url = 'https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=105'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(url, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
tech = soup.select('#main_content > div > div._persist > div:nth-child(1) > div')
news_list=[]
for report in tech:
r = report.select_one('div.cluster_body > ul > li')
if report is not None:
title = r.select_one('div.cluster_text > a').text
link = r.select_one('div.cluster_text > a')['href']
image = r.select_one('div.cluster_thumb > div > a').img['src']
lede = r.select_one('div.cluster_text > div.cluster_text_lede').text
doc = {'title':title,
'link':link,
'image':image,
'lede':lede
}
news_list.append(doc)
return jsonify({"msg": "get완료",'news_list':news_list})
'TIL,WIL(일간,주간 회고)' 카테고리의 다른 글
2022.12.06 TIL CSS 마우스 오버 관련 (0) | 2022.12.06 |
---|---|
2022. 12. 05 TIL 다양한 오타문제 (0) | 2022.12.06 |
2022. 12. 05 TIL 파이썬 이미지소스 크롤링 문제 (0) | 2022.12.06 |
2022. 12. 05 TIL 파이썬Flask get연결 문제 (0) | 2022.12.06 |
2022. 12. 05 TIL html 상단바 layer문제 (2) | 2022.12.06 |