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_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_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)입니다... ㅠㅠ