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

5 - 다른 페이지 크롤링

개복치 개발자 2020. 1. 20. 21:36

일단은 폴더를 하나 새로 만듭니다.

 

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

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

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

    myList = []

    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)

    return myList


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

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

    myList = []

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

    return myList


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

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

    myList = []

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

    return myList



html 파일도 설정해주고

<!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 list %}
                <li>{{i}}</li>
            {% endfor %}

        </ul>

    </div>

    <div class="daum_content">
        <h1>여기는 오늘의유머</h1>
        <ul>
            {% for i in list2 %}
                <li>{{i}}</li>
            {% endfor %}

        </ul>

    </div>

    <div class="daum_content">
        <h1>여기는 클리앙</h1>
        <ul>
            {% for i in list2 %}
                <li>{{i}}</li>
            {% endfor %}

        </ul>

    </div>



</body>
</html>

app.py파일을 수정하면

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

import crawling


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

    myList = crawling.daum()
    todayhumor = crawling.today_humor()
    clien = crawling.clien()

    return render_template("index.html", list = myList, list2 = todayhumor, list3 = clien)

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


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

여기까지 하면