一段时间以来,我一直试图想办法用 C++ 对网站进行一些简单的抓取。我偶然发现了 cURL 库,但我无法正确安装它,所以我会尝试另一种方法。
你们中有人知道任何方法吗?如果随后详细说明如何使用 C++ 在 Win32 上安装它,则使用 cURL 是一个可以接受的答案。
我可以以某种方式更容易地做到这一点,还是在 C++ 中这是一项不可能完成的任务?如果是这样,冒险使用 C# 会更容易吗,尽管我以前也从未使用过它?
一段时间以来,我一直试图想办法用 C++ 对网站进行一些简单的抓取。我偶然发现了 cURL 库,但我无法正确安装它,所以我会尝试另一种方法。
你们中有人知道任何方法吗?如果随后详细说明如何使用 C++ 在 Win32 上安装它,则使用 cURL 是一个可以接受的答案。
我可以以某种方式更容易地做到这一点,还是在 C++ 中这是一项不可能完成的任务?如果是这样,冒险使用 C# 会更容易吗,尽管我以前也从未使用过它?
正如 Vlad Lazarenko 作为评论发布的那样,cURL 的官方安装指南可以帮助您安装它。
当你仍然不能让它工作时,你总是可以自己实现 HTTP。这不是一个非常复杂的协议。您只需使用 Winsock 创建一个套接字,连接到端口 80 上的网络服务器,然后发送这些字符串:
"GET /example.html HTTP/1.1\r\n"
"Host: www.example.com\r\n"
"\r\n"
并且网络服务器将使用自己的 HTTP 标头进行响应,然后是 example.html 的内容(或错误消息)。
关于您关于 C# 的问题:当我不得不在 C++ 或 C# 中实现网络抓取工具之间做出选择时,我会选择后者,因为它提供了 HTTP 支持和开箱即用的更优越的字符串处理功能,不需要任何图书馆。但这是假设 1. 我和我的团队对这两种语言都同样了解,并且 2. 没有我不知道的要求,哪个更愿意指向 C++。
如果你在做网页抓取,C++ 可能不是最好的语言。C++ 是一种低级语言,它在性能方面非常出色,但对于这样的任务,最终得到解决方案只会花费不必要的时间。看看 Python 和urllib2
库,或其他脚本语言,如 Perl 或 Ruby。