我正在尝试建立一个网站,显示社交计数器,显示每个社交媒体帐户的当前关注者,我使用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
为了让你知道我想要做什么,这是一张照片
任何例子都会受到赞赏,因为我的经验有限。
答案 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(图片工作)。