网络抓取转化率和图表[关闭]
Posted
技术标签:
【中文标题】网络抓取转化率和图表[关闭]【英文标题】:Web Crawling Conversion Rates and Graphing Them [closed] 【发布时间】:2015-02-27 21:34:12 【问题描述】:我开始需要一种在Roblox 上跟踪和记录假币兑换率的方法。我认为 javascript 适合跟踪部分,但是,我还想将该数据记录在电子表格中,并在数据进入时创建一个刷新图表。图表的分辨率最多为 5 秒间隔。如果您查看下面的 Roblox 转换页面,您可以看到其他人将其 robux 或 tix 交易为 robux 或 tix 的当前头寸。该页面显示其他人的最高交易头寸。我只想跟踪交易货币页面上显示的每列顶部的兑换率。
如果我要创建一个本地存储在我的计算机上的程序,我应该使用什么语言/程序来完成这项工作?另外,如果我要托管服务器(使用我的树莓派或免费托管服务),我应该使用什么语言/脚本来完成这个?最后,如果我要把它变成一个在线的东西(使用我的 R-Pi 或免费托管),我想通过浏览器访问图表,无论是在我的网络上还是在互联网上(我之前在创建我的 R-Pi 的网站)。
感谢您花时间阅读, 卡梅伦
Link to the conversion rate page
编辑:我现在知道如果不使用帐户登录(这是免费的),您将看不到交易货币页面。您可以看到图片here 和维基页面here。我决定使用 Bubby4j 的答案,它为我提供了一个有用的系统,该系统已经满足了我的要求。我现在只需要修复它(因为它可能已经过时)并让它在服务器上运行。
【问题讨论】:
【参考方案1】:我不确定 roblox 的性质,但是您在此处描述的称为 web-crawling,因此为了实现这一点,没有一种语言,其中大多数都是合适的。我首先要做的是检查天气 roblox 是否提供任何可用的 APIs,它们可以帮助开发人员(例如您自己)以更易于使用的方式(例如 JSON)获取您需要的数据,您可以轻松使用任何语言。 如果 API 不可用,您可以尝试使用各种工具(例如 curl 或 text based web-browsers)以 plain text 的形式获取数据,以确定天气,html 解析器就足够了,或者网站需要更高级的东西,例如javascript interpeter,还有这样的无头浏览器,例如 phantomjs(也可以像 curl 一样使用命令行,完全支持 js)。最好将自己限制为仅获取页面、解析 html 并获取所需的数据,而不是使用完整的无头浏览器解决方案,例如 phantomjs,因为后者有可能减慢速度并且通常更复杂。
为了简单起见,因为您提到您的最终结果是创建一个为数据提供服务的网络服务器,所以我将采用以下方式:
安装一个lemp(linuxnginxmysqlphp)或lamp(linuxapachemysql@987654338堆栈。只需使用您喜欢的包管理器将其下载到您的 linux 设备中即可。
由于最终的 reault 是一个 Web 服务器,您可能希望使用我上面提到的软件包中开箱即用的 php: 如果有API,它就像获取支持的API 的页面并在其上运行JSON/XML 解析并使用数据一样简单。 但是如果没有api 首先使用 php 中可用的 curl 或 file get contents 函数在 php 中获取页面,然后尝试使用任何可用于 PHP 的 HTML 解析器解析页面,例如 SIMPLE DOM PARSER。
上述步骤是为了防止您不需要进入成熟浏览器的复杂性,但如果您这样做,您应该在 phantomjs 中找到舒适并尝试使用它standalone(javascript) 来获取您的数据,或者尝试在谷歌中找到php interface to communicate with phantomjs。它们的方法步骤类似:获取页面并解析其中的 html 以获得所需的数据。
-
由于您已经在网络服务器(lemp/lamp)中,实际上您已经能够在线向您的设备呈现网页。如此简单地执行第 2 步,保存到数据库(mysql)并生成符合您需要的页面。注意 php 仅在用户加载它所在的页面时运行,因此如果您需要定期检查,只需在特定时间使用 cron jobs 到 schedule tasks 并重新运行您的 php 脚本。
注意 1:上述步骤非常笼统,因为您没有在此字段中指定您的背景。 这些步骤简单地描述了网络抓取的一般工作原理。
注意 2:如果您希望在您的网络之外访问您的服务,为了做到这一点,您应该在 port 80 配置(通常是默认设置)您的网络服务器(lemp/lamp),然后您应该提供您的与您的外部用户ip address。 如果您的 ip 是动态变化的,您可以使用免费服务,例如 NO-IP 或 this。 还有其他更复杂的解决方案,例如租用域名。
【讨论】:
【参考方案2】:我实际上编写了一个 PHP 脚本来执行此操作。它使用 MySQL 来存储贸易货币数据。
https://www.dropbox.com/sh/c46wuzhf7636htc/AAALYLvzpbnBzK2qSjfybcGxa?dl=0
我有一个拉链。我不知道它是否仍然有效,但它可能有用。
它甚至会自动登录到 Roblox。
我每 5 秒使用一次 cronjob 来触发记录当前 TC 速率的脚本。
包含的 .sql 文件包含数据库的结构和一些示例数据。
您可能需要编辑很多内容才能使其正常工作,但它应该为您指明正确的方向。
【讨论】:
我已经下载了你的作品并建立了一个网站,我将在其中尝试恢复过时的代码。我不知道任何 SQL,而且我只介绍了 PHP,所以这个项目可能需要一些时间。你可以看到我目前的进度here。到目前为止,我只将旧的 PHP/PHS 文件上传到公共(用于存储)并将 SQL 文件导入 phpMyAdmin;我不得不删除以前记录的信息,因为上传大小最大为 2MB。 如果您使用 FTP,您实际上可以上传更大的文件。如果您需要任何帮助,请告诉我!需要注意的一件事是,对于该主机,我相信 cronjob 只能每 5 分钟左右运行一次。您将无法获得如此精细的数据。 MySQL 用户名/密码需要进入 roblox_tc_db.inc.php 对 cronjob 时间的限制将阻止我分析出现在小实例中的模式,但是我仍然能够跟踪一天内的模式(查看高点和低点的时间)及以上一年(例如假期促销等)。现在我想到了,我还将尝试添加一个程序来跟踪项目何时发布,以便图表可以将销售/交易与发布的帽子进行比较。 听起来很酷@GShocked!希望你喜欢它! 我相信是update_rates_database.php以上是关于网络抓取转化率和图表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章