2013-01-04 27 views
-2

我有一段时间现在试图想出一个方法来做一些简单的C++网站的抓取。 我偶然发现了cURL库,但我无法正确安装它,所以我会尝试另一种方法。C++刮网

你们有没有人知道任何方法?如果后面详细解释如何使用C++在Win32上安装它,使用cURL是一个可以接受的答案。

我可以在某种程度上简化它,或者它是C++中不可能完成的任务吗?如果是这样,是否会更容易尝试使用C#,尽管我之前从未使用过它?

+1

如果您没有完全解释您使用cURL遇到的问题,则没有人可以帮助您解决问题。至于什么语言最好,那完全是主观的。 – Mat

+1

C++是可能的,因为C++是通用的图灵完备语言。 –

+1

@仇恨引擎:图灵度完备性不需要网络支持:) – Philipp

回答

2

如果你在做网页抓取,C++可能不是最好的语言。 C++是一种低级语言,它对性能非常好,但对于这样的任务来说,只需花费很长时间就可以获得解决方案。看看Python和urllib2库,或者Perl或Ruby等其他脚本语言。

+0

python和urllib2的+1。只需要几行就可以工作。 –

+5

这不是问题的答案,而是另一种技术的建议。 Web Scraping *可以用C++来完成,即使这是一个坏主意,我来这里希望能够在后期看到如何。 – baordog

4

由于Vlad Lazarenko发布了评论,the official install guide for cURL可以帮助您安装它。

当你仍然无法正常工作时,你可以自己实现HTTP。这不是一个非常复杂的协议。你只需创建一个使用Winsock的一个插座,连接到Web服务器的80端口,并发送这些字符串:

"GET /example.html HTTP/1.1\r\n" 
"Host: www.example.com\r\n" 
"\r\n" 

和Web服务器将利用其自身的HTTP头,后跟example.html的内容回答(或错误信息)。

关于你关于C#的问题:当我不得不选择用C++或C#实现一个网页抓取工具时,我会选择后者,因为它带有HTTP支持和更出色的字符串处理功能,而不需要任何库。但是,这是基于这样的假设:1.我和我的团队同样熟悉这两种语言,并且2.我不知道哪些更偏向于C++。