读书人

这么的方案c++效率高还是python效率高

发布时间: 2013-03-04 17:22:12 作者: rapoo

这样的方案c++效率高还是python效率高?
c++方案:用curl库抓取京东图书网页html ,提取出图书信息(不考虑价格是图片)。存库。
python方案: python现成的别人写过的爬虫,改动为提取图书信息存库。


疑问一:curl库可以直接抓取到京东html,而自己写的soket获取一般网站的html可以,但是却访问不了京东等大型电商。是否是因为京东屏蔽了非浏览器的访问,用以限制爬虫?
疑问二:假设curl是模拟的浏览器访问的话,相比效率会有一定的下降。这样的话,python是不是会效率高些?

希望大家讨论下c++方案的优缺点,因为主要是为了提高c+编程能力。 爬虫
[解决办法]
效率的高低主要取决于Python方案所使用的模块是否使用C/C++所构建的动态库,如果是的话,那么效率上几乎没有差别,建议用Python方案,否则用C++方案。
[解决办法]
也许是自己写的socket,有很多http的协议的细节没有处理,所以不对。

[解决办法]
是否是因为京东屏蔽了非浏览器的访问,用以限制爬虫?
///////////
屏蔽不了的,比如非浏览器的话你可以在agency里头伪造为浏览器发送的。一般的话你取不了京东的数据肯定是session没弄对,或者url跳转你没响应

这种事情当然用python写啦,io占了大头,用c++写和用python写性能上没多大区别。数据分析处理的时候要性能才去考虑用c++写
[解决办法]
这事的瓶颈应该在网络传输上,你的本机软件用啥编恐怕运行效率都差不多。
当然就优先考虑实行效率。
[解决办法]
同意1楼。
楼主可以先用python,
同时自己写C++程序,然后比较下二者的性能。
[解决办法]

引用:
引用:是否是因为京东屏蔽了非浏览器的访问,用以限制爬虫?
///////////
屏蔽不了的,比如非浏览器的话你可以在agency里头伪造为浏览器发送的。一般的话你取不了京东的数据肯定是session没弄对,或者url跳转你没响应

这种事情当然用python写啦,io占了大头,用c++写和用python写性能上没多大区别……

是啊 这一部分跟IO无关,考量的就是算法,架构,性能了。高密度计算的话C++有天然优势。而且没IO,你考虑的就不仅仅是多线程了,还有多核的并行。多核计算的话python支不支持我就不大清楚。。
[解决办法]
python,瓶颈主要在IO上面,C++的运算能力能发挥的场景不多,这个时候python的开发效率就很有用了。
另外有pycurl,犯不着为了curl用c++。
[解决办法]
引用:
引用:引用:引用:是否是因为京东屏蔽了非浏览器的访问,用以限制爬虫?
///////////
屏蔽不了的,比如非浏览器的话你可以在agency里头伪造为浏览器发送的。一般的话你取不了京东的数据肯定是session没弄对,或者url跳转你没响应
……

假设已经下载好8万个页面,分析8万个页面也花不了一两分钟。就算你能用C++提高一倍效率,也节省不了多少时间。所以你这个方案还是使用python的好
[解决办法]
引用:
假设已经下载好8万个页面,分析8万个页面也花不了一两分钟。就算你能用C++提高一倍效率,也节省不了多少时间。所以你这个方案还是使用python的好


厉害,一两分钟处理8万个页面?
[解决办法]
引用:
引用:引用:
引用:引用:引用:是否是因为京东屏蔽了非浏览器的访问,用以限制爬虫?
///////////
屏蔽不了的,比如非浏览器的话你可以在agency……

优化是有。。因为分析是计算密集的,下载是io密集的,所以理所当然地把他们分开来,按照生产者消费者的模式。。
不过可以预见的是改进后效率提升不是很大,而且你的规模也不大,所以我个人认为是没有必要做这事 你原来那样做,简单结实易懂,足够了

读书人网 >C++

热点推荐