每天自动获取最新一条。

 

封装了下代码:
def get_today_word(): today = datetime.date.today()
word=Word.objects.filter(add_time__year=today.year,
add_time__month=today.month, add_time__day=today.day).first() if word: return
(json.loads(word.content),today.weekday()+1) else: s = requests.Session() url =
"https://api.hibai.cn/api/index/index" data = { "TransCode": "030111",
"OpenId": "123456789", "Body": "" } ret = s.post(url=url,
data=data).content.decode('utf-8') Word.objects.create(content=ret) return
(json.loads(ret),today.weekday()+1)
返回格式是一个元祖,第一个参数是从韩少的ONE接口抓回来的json字符串。



第二个参数是自己拼出的今天的星期。

建立了一张word数据表,把每天的数据存储下来;另一个好处是,只需要第一次去爬取,第二次打开页面,直接从数据库获取json数据就行了。
class Word(models.Model): ''' 每日一句 ''' content =
models.TextField(verbose_name=u'json内容') add_time =
models.DateTimeField(default=datetime.now, verbose_name="添加时间") class Meta:
verbose_name = "每日一句" verbose_name_plural = verbose_name def __str__(self):
return self.add_time.strftime('%Y-%m-%d')
View中调用获取:
word = get_today_word()
传到template中只需要render对应的字段就行了。
<a href="{{ word.0.Body.url }}"> <div class="sentence"><strong>每日一句</strong>
<h2>{{ word.0.Body.date|slice:":10" }} 周{{ word.1 }}</h2> <p>{{
word.0.Body.word }} --- {{ word.0.Body.word_from }}</p> </div> </a>
 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信