如何定期将计数器值存储到MySQL数据库

时间:2017-03-26 21:36:13

标签: javascript php html mysql

我正在尝试建立一个网站,显示社交计数器,显示每个社交媒体帐户的当前关注者,我使用https://github.com/juanv911/SocialCounters获得了该网站。

但是,我的下一个问题是我如何定期(每天一次?)将这些关注者值存储到MySQL表中,以便我可以使用它们来制作折线图(我已经工作了,但我输入了静态值。)

Html

<a class="item twitter"><i class="fa fa-twitter"></i><span class="count"></span>Followers</a>
<a class="item google"><i class="fa fa-google-plus"></i><span class="count"></span>Followers</a>
<a class="item facebook"><i class="fa fa-facebook"></i><span class="count"></span>Likes</a>
<a class="item youtube"><i class="fa fa-youtube"></i><span class="count"></span>Subscribers</a>
<a class="item instagram_sandbox"><i class="fa fa-instagram"></i><span class="count"> </span>Followers</a>
<a class="item pinterest"><i class="fa fa-pinterest"></i><span class="count"></span>Followers</a>  

的JavaScript

我无法发布此处,因为发布多个链接至少需要10个或更多代码,但是http://www.juanvargas.net/SocialCounters/js/api.js

为了让你知道我想要做什么,这是一张照片 adsf

任何例子都会受到赞赏,因为我的经验有限。

3 个答案:

答案 0 :(得分:1)

首先,您需要使用PHP进行cron job,这将每24小时运行一次,并检查您的社交媒体数量。

https://code.tutsplus.com/tutorials/scheduling-tasks-with-cron-jobs--net-8800

第二部分是借助cron job

来存储/检索数据库中的数据

https://www.codeofaninja.com/2011/12/php-and-mysql-crud-tutorial.html

答案 1 :(得分:0)

您可以编写一个脚本,通过 cron 以给定的时间间隔获取数据。我没有足够的信息来说明您如何收集每个社交帐户的数字,或者您是否有权设置cron - 但如果您这样做,那么这个想法很简单。

请注意,除非您根据自己的需要,路径和数据库对其进行自定义,否则此示例将不起作用。

Error in .process.stmnt(stmnt, formalz, envs) : 
  Don't know what to do with statement: digest

将此文件保存在某处,然后使用

在服务器上通过ssh打开crontab
<?php
//Collect the numbers and put them into variables: 
$twitter_followers = '500';
$facebook_followers = '1000';
$instagram_followers = '400';

//Connect to database
$con=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); }

//Insert into database (or update, if this is what you need) 
mysqli_query($con,"INSERT INTO SocialMedia (twitter,facebook,instagram) 
VALUES ($twitter_followers,'$facebook_followers', $instagram_followers)");

mysqli_close($con);
?>

输入新行:

crontab -e

并保存。这将在每天午夜执行该文件。

(如果您使用cPanel,Plesk或类似的管理软件,您可以通过控制面板在GUI中编辑crontab。)

抱歉,我无法更具体!如果您回来了解有关设置的更多详细信息,我相信我或此处的其他人可以更好地帮助您。

祝你有个美好的一天,祝你好运! : - )

答案 2 :(得分:0)

所以,我想出了一个或两个星期前做到这一点的方法,并认为我把我的答案放在其他人需要的地方。

我能够做到这一点的方法是使用PyQt4和BeautifulSoup来抓取数据,然后只需要将它转储到我的数据库中,这里是代码(可能不是最有效的,但它可以工作! );

import sys  
import pymysql
from PyQt4.QtGui import *  
from PyQt4.QtCore import *  
from PyQt4.QtWebKit import * 
from bs4 import BeautifulSoup
#must enter activate py35 in terminal before running python "E:\Working.py"
class Render(QWebPage):  
  def __init__(self, url):  
    self.app = QApplication(sys.argv)  
    QWebPage.__init__(self)  
    self.loadFinished.connect(self._loadFinished)  
    self.mainFrame().load(QUrl(url))  
    self.app.exec_()  

  def _loadFinished(self, result):  
    self.frame = self.mainFrame()  
    self.app.quit()  
#website its point at 
url = 'http://localhost/social-feed/followers.html'  
#render the website
r = Render(url)  
#gather into html
html = r.frame.toHtml() 
#pass html to bs so that it can be manipulated
soup = BeautifulSoup(html, "lxml")
#getting just the values from <span class="count">
count = soup.find_all('span', {'class' : 'count'})
#gets rid of all the markup text apart from the values inside
elements = [tag.text for tag in count]
#connects to server
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='',
                             db='test',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
#inserts data into the table "scriptdump", and into the columns in the order that appears on the webpage
try:
    with connection.cursor() as cursor:
            sql = "INSERT INTO `scriptdump` (`twitter`, `google`, `facebook`, `youtube`, `instagram`, `pintrest`) VALUES (%s, %s,%s, %s,%s, %s)"
            cursor.execute(sql, (elements))
connection.commit()
finally:
    connection.close()

这适用于我在Python 3.5.2中,对于像我这样的任何新手,你必须pip安装PyQt,bs4等(代码中的注释应该指导你完成改变的内容,这对你有用) ) http://i.imgur.com/pjtgfZX.png(图片工作)。