【问题标题】:Web crawler only returns partial content网络爬虫只返回部分内容
【发布时间】:2013-09-17 19:43:16
【问题描述】:

我和我的一个朋友正在尝试将所有 Steam 游戏及其 ID 索引到一个数据库表中。

到目前为止,我们已经成功地索引了前 75 款游戏,从最新版本开始。但问题是,我们不知道为什么它只返回前 75 个,而不是全部返回。爬虫是用 PHP 编写的。

以下是来源:http://pastebin.com/cQfU38PQ 标题为 index.php 和 http://pastebin.com/RpT20R6j 标题为 class.php。

每次我们运行脚本,运行大约需要 10-20 秒,然后它给出一个空白页,正如预期的那样。但是,该数据库将仅包含 75 个条目。我们没有在脚本中定义它应该运行多长时间,或者它应该索引多少条目。 我还确保 php 脚本有足够的时间按照 php.ini 中的设置执行。

您能帮我们找出它在索引 75 个条目后停止的原因吗?

【问题讨论】:

  • 给你的一些笔记;首先,Steam 是否为此提供 API 或 RSS 提要?这将更容易解析,并且您被阻止的可能性较小。其次,您不会在请求之间进行任何延迟,因此您可能会因爬行速度过快而被阻止(如果他们允许的话)。第三,您没有转义您的输入数据,因此 Steam 可以运行他们自己选择的专门为您选择的 SQL(即 SQL 注入漏洞)!最后,您应该在 cron 上运行它,而不是在网页中。

标签: php web-crawler steam


【解决方案1】:

在您的代码行 11

$c = 3;

您只得到 3 个页面,每个页面有 25 个结果,总共 75 个

您需要将此设置为 282,因为这是当前的总页数。

$c = 282;

【讨论】:

  • 哦,哇,我们为了调试目的实现了那行代码。不敢相信我们错过了。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多