使用安全登录进行PHP站点抓取

使用安全登录进行PHP站点抓取,php,Php,我正试图从我的一个分销商那里获得每种产品的库存量。他们不知道如何导出这些数据。因此,我想知道是否有人能帮我指出正确的方向,如何使用PHP抓取一个你必须登录才能获取数据的站点?它不是一个使用SSL的安全站点 谢谢你的提示 克里斯·爱德华兹(Chris Edwards)有一个叫做curl的图书馆,你应该去看看 它允许您的脚本登录,使用cookies/会话,并从它所跟随的任何页面中刮取内容。您可以设置它的深度,以及它是否应该跟随任何重定向等。 你甚至可以用它来发布数据。基本上这是一个很棒的工具 这里

我正试图从我的一个分销商那里获得每种产品的库存量。他们不知道如何导出这些数据。因此,我想知道是否有人能帮我指出正确的方向,如何使用PHP抓取一个你必须登录才能获取数据的站点?它不是一个使用SSL的安全站点

谢谢你的提示


克里斯·爱德华兹(Chris Edwards)

有一个叫做curl的图书馆,你应该去看看

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

这里还有一个指向教程的链接,您可以在这里一步一步地了解它的工作原理


想要到达目的地,最简单的方法就是利用。cURL的基本特性是,它允许您根据需要配置HTTP请求并接收响应。这可以根据您的需要以不同的详细程度来完成

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

我假设说“必须登录”意味着你必须通过一个登录表单,才能刮取任何东西。cURL可以在您的帮助下假装登录

首先,您需要像手动操作一样使用cURL“提交”登录表单。为了确保正确,您需要查看手动提交表单时浏览器发出的HTTP请求,并使用cURL构造相同的请求。要详细查看HTTP请求,可以使用Firebug、Chrome的开发工具或绝对奇妙的工具

很可能在提交有效的登录表单后,服务器会向您发送一个cookie,用于在后续请求中对您进行身份验证。此cookie将是服务器HTTP响应头的一部分(
Set cookie
header)。您将需要记住该cookie的值,并在服务器的后续抓取中包含一个
cookie
标题——实际上,您正在做的正是您登录**时浏览器所做的

最后,您可能需要进行多次往返才能找到目标。也许你需要抓取的URL事先不知道,你需要抓取一个“列表”页面,找出你想要抓取的URL的可变部分。这可以通过简单地分步骤解决:首先刮取“列表”页面,找出您需要的内容,然后刮取您真正想要的“详细信息”页面

我不提供任何代码,因为网上有大量的cURL教程,但我相信知道计划是什么会让你的工作更容易



imk另一种(更快但粗糙的)方法是自己登录,查看你得到的饼干的价值,然后将其粘贴到你的申请中。这样做的好处是,您不再需要使用cURL伪造登录;缺点是,每次使用您的工具之前,都必须有人手动登录并向您的工具提供凭据。

您必须提供更多详细信息,例如基本访问验证,或?-1。虽然这在形式上是正确的,但这并不能进一步帮助他。仅仅说“使用X”并不是一个好的答案。我提供了一个链接到他们的网站,那里有关于如何与php一起使用该库的纪录片,他说tip并没有给我一个可以实现我想要的一切的函数。