看了很小清新应用(火柴盒,一个,阅FM),自己也想做一把文艺青年,做一个文艺应用,但是没有数据,只能自己去爬了,打开阅FM网站和Fildder
逐个分析链接,发现了上图圆圈里的链接,复制到浏览器中打开,不正是我们想要的吗
多次尝试可以发现,这个链接每次返回的结果都是不一样的,所以有这一个链接就够了,下面的工作就是获取数据,然后保存到数据库中了。
db.py
import MySQLdb
def connectDb():
conn = MySQLdb.connect(host='localhost',user='root',passwd='',db='yuefm',port=3306,charset='utf8')
cur = conn.cursor();#获得游标
return conn,cur;
def insertDb(conn,cur,data):
sql = "insert into yuefm (body,short_id,title,is_liked,source,likes,is_opened,date_created,int_id,id) values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % (data[0],data[1],data[2],data[3],data[4],data[5],data[7],data[6],data[8],data[9])
try:
# 执行sql语句
cur.execute(sql)
# 提交到数据库执行
conn.commit()
print data[1]+"-------------success"
except:
# 发生错误时回滚
conn.rollback()
print 'error'
# 关闭数据库连接
conn.close()
main.py
# -*- coding: utf-8 -*-
import urllib
import json
import db
import threading
import time
def timer():
t = threading.Timer(5,startTask) #每5s执行一次任务
t.start()
def startTask():
path = "http://yue.fm/api/articles/random"
result = urllib.urlopen(path).read()
jsonval=json.loads(result) #获取返回的json结构
data= jsonval.values()
conn,cur = db.connectDb()
db.insertDb(conn,cur,data) #插入数据
timer()
if __name__ == '__main__':
timer()
while True:
time.sleep(1)