게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
django(웹 앱) 배포 관련해서 문의드립니다... ㅠ
게시물ID : programmer_21111짧은주소 복사하기
작성자 : 작성자구남친
추천 : 0
조회수 : 985회
댓글수 : 2개
등록시간 : 2017/07/28 00:43:15
python(pyCharm)을 통해서 django 웹 어플리케이션을 간단하게 만들었습니다...

로컬에서는 문제없이 돌아가는데, 이것을 pythonanywhere을 통해서 배포할려고 장고걸스 튜토리얼을 바탕으로 Git에 올린다음에 당겨오는 방식으로 파이썬애니웨어에 당겼습니다.

만들려고 했던 홈페이지는 제가 보던 게시판을 크롤링해와서 편하게 볼려고 만드는 사이튼데요, 로컬(127.0.0.1:8000)에서는 문제없이 표시되던 크롤링 내용들이

배포한 사이트에서는 하나도 표시가 되지 않습니다.... 

어디를 살펴봐야할까요 한 이틀 살펴봤는데 도대체 뭐가 문젠지 모르겟습니다....

디렉토리 상태는 이런 상태고
Hermit_table
ㄴHermit_table
   ㄴ__init__.py
      settings.py
      urls.py
      wsgi.py
ㄴpost_service
    ㄴmigrations
    ㄴstatic
       ㄴcss
           -post.css
    ㄴtemplates
       -post_list.html
    -__init__.py
    -admin.py
    -apps.py 
    -Crawling.py
    -models.py
    -tests.py
    -urls.py
    -views.py
-templates
-.gitignore
-db.sqlite3
-manage.py


문제가되는것 같은 post_list.html 와 crawling.py, views.py는 다음과 같습니다
1. post_list.html

{% load staticfiles %}
<!DOCTYPE html>
<html lang="ko">

<head>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="{% static 'css/post.css' %}">
<meta charset="UTF-8">
<title>Hermit Box</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    <div style="float:left;width:50%">
<h2 class="board_name"> 웃긴대학 </h2>
<div id="humoruniv_table">
<table class="table_list">
<thead>
<th width="*">제목</th>
</thead>
<tbody>
{% for post_title, post_url in post_list_humor %}
  <tr>
<td class="title"><a href="{{ post_url }}">{{ post_title }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
        </div>
</div>
<div style="float:right;width:50%">
<h2 class="board_name"> 루리웹 </h2>
<div id="ruliweb_table">
<table class="table_list">
<thead>
<th width="*">제목</th>
</thead>
<tbody>
{% for post_title, post_url in post_list_ruli %}
  <tr>
<td class="title"><a href="{{ post_url }}">{{ post_title }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</body>
</html>


2. crawling.py
import requests
from bs4 import BeautifulSoup
import os


def crawling_humoruniv(sitename, num):
    if num == 0 :
        crawl_humoruniv_post.clear()
    global crawl_num
    now_site = sitename
    if num != 0 :
        now_site += "&pg="+str(num)
    now_req = requests.get(now_site)
    now_content = now_req.content
    now_soup = BeautifulSoup(now_content,"html.parser")
    now_result = now_soup.find_all('a',{'class':"li"})

    splitted=[]

    for sub_sites in now_result:
        now_line = str(crawl_board[crawl_num]+sub_sites.get('href'))
        splitted = str(sub_sites).split('>')
        post_title = splitted[1].split('<')[0]
        post_title = post_title.strip("\t")
        post_title = post_title.strip("\n")
        post_title = post_title.strip("\r")
        post_title = post_title.strip("(웃긴자료) ")

        if now_line.find('day&page') == -1:

            crawl_humoruniv_post.append((post_title, now_line))
        else :
            continue
    if num == 0 :
        for page in range(1,9):
            crawling_humoruniv(sitename,page)

    return crawl_humoruniv_post

def crawling_ruliweb(ruli_board,num) :
    if num == 0 :
        crawl_ruliweb_post.clear()

    now_site = ruli_board
    if num != 0 :
        now_site += "?&page=" + str(num)

    now_req = requests.get(now_site)
    now_content = now_req.content
    now_soup = BeautifulSoup(now_content,"html.parser")
    now_result = now_soup.find_all('td',{'class': "subject"})

    splitted = []
    for sub_sites in now_result :
        now_line = sub_sites.find('a')['href']
        #splitted = str(sub_sites).split('>')
        #post_title = splitted[1].split('<')[0]
        post_title1 = sub_sites.text
        post_title = post_title1[1:-6]

        crawl_ruliweb_post.append((post_title,now_line))

    if num == 0 :
        for page in range(1,5):
            crawling_ruliweb(ruli_board,page)

    return crawl_ruliweb_post

crawl_site=[]
crawl_board=[]
crawl_humoruniv_post=[]
crawl_ruliweb_post=[]
crawl_site.append('http://web.humoruniv.com/board/humor/list.html?table=pds')
crawl_site.append('http://bbs.ruliweb.com/best')
crawl_board.append('http://web.humoruniv.com/board/humor/')
crawl_num=0


crawling_humoruniv(crawl_site[crawl_num],0)
crawling_ruliweb(crawl_site[1],0)

3. views.py
from django.http.response import HttpResponse
from django.template.loader import get_template

from post_service.Crawling import crawling_humoruniv, crawling_ruliweb


def post_list(request):
    template = get_template('post_list.html')

    crawl_site = []
    crawl_board = []
    crawl_humoruniv_post = []
    crawl_ruliweb_post = []

    crawl_site.append('http://web.humoruniv.com/board/humor/list.html?table=pds')
    crawl_site.append('http://bbs.ruliweb.com/best')
    crawl_board.append('http://web.humoruniv.com/board/humor/')
    crawl_num = 0

    crawl_humoruniv_post = crawling_humoruniv(crawl_site[crawl_num], 0)
    crawl_ruliweb_post = crawling_ruliweb(crawl_site[1], 0)

    ctx = {'post_list_humor' : crawl_humoruniv_post, 'post_list_ruli' : crawl_ruliweb_post}
    return HttpResponse(template.render(ctx))


위 내용으로 로컬에서는 문제없이 잘 글이 표시되는데, 배포한 파이썬애니웨어에서는 크롤링한 글이 보이지 않습니다... ㅠㅠㅠ
어떻게 해야할까요.... 환경은 python3.5(virtual env)입니다... ㅠㅠ 

스크린샷 2017-07-28 오전 12.36.06.png
스크린샷 2017-07-28 오전 12.36.33.png

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호