我需要使用PHP从网站获取数据并将其保存在MySQL数据库中。我还想获取图像并将其保存在我的服务器中,以便我可以在我的网站中显示它们。我听说可以使用API,但我想知道我是否可以使用CURL来做到这一点。我想每天获取大量数据,那么使用CURL会占用大量服务器端资源吗?还有哪些其他方法可以获取数据?
答案 0 :(得分:1)
我认为这更像是一个堆栈溢出问题,但我会尝试回答。
根据您的说法,您似乎想要一个通用的网络抓取工具。有一些解决方案。写你的相对容易。
问题是php和curl很慢。而且很可能你可以输入内存问题和脚本执行时间。 Php的设计并不是为了在无限循环中运行。
如何使用自定义抓取工具执行此操作:
尊重robots.txt!尊重连接数量!
Php:卷曲网址,将其加载到dom(懒惰)或解析获取所有标记(用于下一个链接),然后下载所有img标记。将a标记hrefs添加到hashmap和队列中。 hashmap不重新抓取已经访问过的。 Queeue - 下一份工作。冲洗重复,你在做生意。
Java:Webdriver + chrome + browsermob抓取工具可以用几行代码制作。你会发现一些你会错过的东西。缓慢但容易和懒惰。您将直接从代理拦截所有图像。
Java / C#:适当的,异步的,高性能的爬虫,后面有类似magestic 12 html解析器的东西。你可以达到每分钟处理2000页,并将赢得任何网站管理员的永恒仇恨。你也可以看看lucent - apache项目的一部分。