인프런 - 강의/트렌드 홈페이지 개발 (Flask, 파이썬크롤링)

6 - href 연결하기

개복치 개발자 2020. 1. 21. 12:02

 

자 이번엔 가져온 게시글들에서 링크를 달아주겠습니다.

 

from flask import Flask, render_template
app = Flask(__name__)

import crawling


@app.route('/')
def hello():

    myList, myList_href = crawling.daum()
    todayhumor, todayhumor_href = crawling.today_humor()
    clien, clien_href = crawling.clien()

    return render_template("index.html",
                           list = myList, list_href = myList_href, list_len = len(myList),
                           list2 = todayhumor, list2_href = todayhumor_href, list2_len = len(todayhumor),
                           list3 = clien, list3_href = clien_href, list3_len = len(clien))

@app.route('/about')
def about():
    return "여기는 어바웃입니다."


if __name__ == '__main__':
    app.run()

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <link rel="stylesheet" href="{{ url_for('static', filename='css/index_style.css') }}">

</head>
<body>

    <div>

        여기는 html영역입니다.

        <a href="/about">어바웃페이지로 이동</a>

    </div>

    <div class="daum_content">
        <h1>여기는 다음 인기검색어입니다.</h1>

        <ul>
            {% for i in range(0, list_len) %}
                <a href={{list_href[i]}}><li>{{list[i]}}</li></a>
            {% endfor %}

        </ul>


    </div>

    <div class="daum_content">
        <h1>여기는 오늘의유머</h1>
        <ul>
            {% for i in range(0, list2_len) %}
                <a href={{list2_href[i]}}><li>{{list2[i]}}</li></a>
            {% endfor %}

        </ul>

    </div>

    <div class="daum_content">
        <h1>여기는 클리앙</h1>
        <ul>
            {% for i in range(0, list3_len) %}
                <a href={{list3_href[i]}}><li>{{list3[i]}}</li></a>
            {% endfor %}

        </ul>

    </div>



</body>
</html>

 

 

# 크롤링 라이브러리 import
import requests
from bs4 import BeautifulSoup

def daum() :
    # 엔터치기
    req = requests.get('https://www.daum.net/')

    # 이런 식으로 HTML에 있는 코드를 다 가져온다
    soup = BeautifulSoup(req.text, 'html.parser')

    myList = []
    myList_href = []

    for i in soup.select("#mArticle > div.cmain_tmp > div.section_media > div.hotissue_builtin > div.realtime_part > ol > li"):
        myList.append(i.find("a").text)
        myList_href.append(i.find("a")["href"])

    return myList, myList_href


def today_humor() :
    # 엔터치기
    req = requests.get('http://www.todayhumor.co.kr/board/list.php?table=bestofbest')

    # 이런 식으로 HTML에 있는 코드를 다 가져온다
    soup = BeautifulSoup(req.text, 'html.parser')

    myList = []
    myList_href = []

    for i in soup.find_all("td", class_="subject") :
        myList.append(i.text)
        myList_href.append("http://www.todayhumor.co.kr/" + i.find("a")["href"])

    return myList,myList_href


def clien():
    # 엔터치기
    req = requests.get('https://www.clien.net/service/recommend')

    # 이런 식으로 HTML에 있는 코드를 다 가져온다
    soup = BeautifulSoup(req.text, 'html.parser')

    myList = []
    myList_href = []

    for i in soup.find_all("span", class_="subject_fixed") :
        myList.append(i.text)

    for i in soup.find_all("a", class_="list_subject") :
        myList_href.append("https://www.clien.net/" + i["href"])

    return myList, myList_href