首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用cURL和allow_url_fopen时如何抓取网站

禁用cURL和allow_url_fopen时如何抓取网站
EN

Stack Overflow用户
提问于 2010-10-07 18:12:25
回答 4查看 3.9K关注 0票数 2

我知道关于PHP页面抓取器的问题已经被问了一次又一次,利用这个问题,我发现了SimpleHTMLDOM。在本地服务器上无缝工作后,我将所有内容都上传到了我的在线服务器上,结果却发现有些东西不能正常工作。快速浏览一下常见问题将我带到this。我目前使用的是免费主机服务,因此请编辑任何php.ini设置。因此,根据常见问题解答的建议,我尝试使用cURL,结果发现这也被我的托管服务关闭了。有没有其他简单的解决方案可以在不使用cURL或SimpleHTMLDOM的情况下抓取另一个网页的内容?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-07 18:23:37

如果未启用cURLallow_url_fopen,可以尝试通过以下方式获取内容

  • fsockopen - Open Internet或Unix域套接字连接

换句话说,您必须手动处理HTTP请求。有关如何执行GET请求,请参阅手册中的示例。然后可以进一步处理返回的内容。如果启用了套接字,您还可以使用任何第三方库来利用它们,例如Zend_Http_Client

顺便说一句,请查看Best Methods to Parse HTML以获得SimpleHTMLDom的替代方案。

票数 4
EN

Stack Overflow用户

发布于 2010-10-07 18:37:15

cURL是一种特殊的应用编程接口。它不是通常所说的http库,而是一个用于FTP、SFTP、SCP、HTTP PUT、SMTP、TELNET等的通用数据传输库。如果你只想使用HTTP,有一个相应的PEAR library for that。或者检查您的PHP版本是否启用了官方http extension。对于抓取,可以尝试phpQueryquerypath。两者都有内置的http支持。

票数 1
EN

Stack Overflow用户

发布于 2013-08-07 07:43:30

这里有一种简单的方法,可以在allow_url_fopen设置为false时获取图像,而不需要研究专用工具。

在你的开发环境中创建一个网页,加载你正在抓取的所有图片。然后,您可以使用浏览器保存图像。File -> "Save Page As"

如果您需要一种一次性解决方案,以便从allow_url_fopen设置为0的远程服务器下载一组图像,那么这将非常方便。

file_get_contentscurl失败后,这对我起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3880628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档