我知道关于PHP网页抓取工具的问题已经被问到时间和时间,并且使用了这个,我发现了SimpleHTMLDOM。在我的本地服务器上无缝工作后,我将所有内容上传到我的在线服务器,只是发现一些不正常的东西。快速查看常见问题解答会引导我this。我目前正在使用免费托管服务,因此请编辑任何php.ini设置。因此,使用常见问题解答的建议,我尝试使用cURL,但发现这也是由我的托管服务关闭。有没有其他简单的解决方案可以在不使用cURL或SimpleHTMLDOM的情况下抓取其他网页的内容?
答案 0 :(得分:4)
如果未启用cURL
和allow_url_fopen
,您可以尝试通过
fsockopen
- 打开Internet或Unix域套接字连接换句话说,您必须手动执行HTTP请求。请参阅手册中有关如何执行GET请求的示例。然后可以进一步处理返回的内容。如果启用了套接字,您还可以使用任何使用它们的第三方lib,例如Zend_Http_Client
。
在旁注中,查看Best Methods to Parse HTML以了解SimpleHTMLDom的替代方案。
答案 1 :(得分:1)
cURL是一种专业API。它不是经常被创建的http库,而是用于FTP,SFTP,SCP,HTTP PUT,SMTP,TELNET等的通用数据传输库。如果您只想使用HTTP,则可以使用PEAR library for that。或者检查您的PHP版本是否启用了官方http extension。 要抓取,请尝试phpQuery或querypath。两者都带有内置的http支持。
答案 2 :(得分:0)
这是一种在allow_url_fopen
设置为false
时抓取图片的简单方法,而不需要研究相似的工具。
在您的开发环境中创建一个网页,加载您正在抓取的所有图片。然后,您可以使用浏览器保存图像。 File -> "Save Page As"
。
如果您需要一次性解决方案从allow_url_fopen
设置为0
的远程服务器下载一堆图像,这将非常方便。
file_get_contents
和curl
失败后,这对我有用。
答案 3 :(得分:-4)
file_get_contents()是获取页面而不安装额外库的最简单方法。