使用安全登录进行PHP站点清理

时间:2010-12-01 18:50:04

标签: php

我正在努力削减我的一个经销商每件产品的库存数量。他们不知道如何导出这些数据。所以我想知道是否有人可以帮我指出如何使用PHP抓取网站以获取数据的正确方向?它不是一个安全的SSL网站。

感谢您的任何提示,

Chris Edwards

2 个答案:

答案 0 :(得分:12)

获得所需目标的最简单方法是使用cURL。 cURL的基本功能是它允许您根据需要配置HTTP请求并接收响应。这可以根据您的需要以不同程度的细节完成。

您要做的是基本上发出HTTP请求以获取您想要的页面,并从响应的HTML中删除数据。这很容易做到,但在你的情况下,你需要克服一些障碍。

我假设通过说“必须登录”,你的意思是有一个登录表单,你必须通过才能刮掉任何东西。 cURL可以在您的帮助下伪造登录信息。

首先,您需要使用cURL“提交”登录表单,就像您手动执行一样。为了确保您正确使用,您需要查看浏览器在手动提交表单时所做的HTTP请求,并使用cURL构建相同的请求。要详细查看HTTP请求,您可以使用Firebug,Chrome的开发人员工具或绝对精彩 Fiddler debugging proxy

最有可能在提交有效的登录表单后,服务器会向您发送一个cookie,用于在后续请求中对您进行身份验证。此cookie将成为服务器HTTP响应(Set-Cookie标头)标头的一部分。您需要记住该cookie的值,并在随后的服务器擦除中包含Cookie标题 - 实际上,如果您已登录**¹**,您的浏览器将完全正确。< / p>

最后,您可能需要多次往返才能找到目标。也许你需要抓取的URL不是事先知道的,你需要抓一个“列表”页面来找出你要抓取的URL的一些可变部分。这可以通过简单地解决问题来解决:首先刮掉“列表”页面,找出你需要的东西,然后刮掉你真正想要的“细节”页面。

我没有提供任何代码,因为网上有大量的cURL教程,但我相信知道计划是什么会让你的工作变得更加轻松。


¹另一种(更快,但更粗糙)的方法是简单地登录自己,看到你获得的cookie的价值,并将其粘贴到你的scrape的请求中。好处是你不再需要使用cURL伪造登录;缺点是在每次使用工具之前,有人必须手动登录并为您的工具提供凭证。

答案 1 :(得分:1)

有一个名为curl的库你应该查看它

link

它允许您的脚本登录,使用cookie /会话并从其后面的任何页面中抓取内容,您可以设置它应该达到的深度以及是否应该遵循任何重定向等。 你甚至可以用它来发布数据。它基本上是一个很棒的工具。

这里还有一个指向教程的链接,您可以在其中看到步骤如何工作

http://devzone.zend.com/article/1081