Skip to content

Instantly share code, notes, and snippets.

@kehanlu
Created November 20, 2017 08:17
Show Gist options
  • Save kehanlu/7777a36c139eab6e76e509daaef0614b to your computer and use it in GitHub Desktop.
Save kehanlu/7777a36c139eab6e76e509daaef0614b to your computer and use it in GitHub Desktop.
今日體育新聞

今日體育新聞

從 Google news上爬top體育新聞

:)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>今天體育</title>
<!--Boostrap4-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
<!-- JQuery -->
<script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script>
<style>
p{
font-size: 20px;
padding: 10px;
}
</style>
</head>
<body>
<div class="row">
<div class="col-4"></div>
<div class="col-4">
<h2>今日體育新聞</h2>
<p>顯示<input id="input"/>筆新聞</p>
<button type="button" class="btn btn-info" id='load'>搜尋</button>
<div id="output" style="margin-top:50px;"></div>
</div>
<div class="col-4"></div>
</div>
<script>
$('#load').click(function(){
$.ajax({url: "ajax", success: function(result){
var text="";
//顯示幾筆新聞
for (i = 0; i < $('input').val(); i++) {
text += "<p>" + (i+1) +". " + result['title'][i] + "</p>";
}
$("#output").html("<div class='alert alert-secondary'>"+text+"</div>");
}});
})
</script>
</body>
</html>
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^ajax$', views.ajax, name='ajax')
]
from django.shortcuts import render
from django.http import JsonResponse
from bs4 import BeautifulSoup
import requests
def index(request):
return render(request, 'news/index.html', {})
def ajax(request):
"""
get data from google news sports today
return 'ajax form'
"""
html = requests.get(
'https://news.google.com/news/rss/headlines/section/topic/SPORTS.zh-TW_tw/%E9%AB%94%E8%82%B2?ned=tw&hl=zh-tw&gl=TW')
h = BeautifulSoup(html.text, 'html.parser')
items = h.find_all('item')
data = {
'title': [],
}
# append each news
for idx, item in enumerate(items):
data['title'].append(item.title.text)
return JsonResponse(data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment