以前只写过很简单的Python爬虫,直接用内置库实现,有没有谁用Python爬过规模较大的数据,用的是什么方法?

还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python本身写爬虫已经很简单了。

回复内容:

可以看看 Scrapy ( http://scrapy.org/ ),基于这个框架来写自己的爬虫

由于项目需求收集并使用过一些爬虫相关库,做过一些对比分析。以下是我接触过的一些库:

Beautiful Soup。名气大,整合了一些常用爬虫需求。缺点:不能加载JS。

Scrapy。看起来很强大的爬虫框架,可以满足简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。

mechanize。优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。

selenium。这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

cola。一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高,不过值得借鉴。

以下是我的一些实践经验:对于简单的需求,比如有固定pattern的信息,怎么搞都是可以的。

对于较为复杂的需求,比如爬取动态页面、涉及状态转换、涉及反爬虫机制、涉及高并发,这种情况下是很难找到一个契合需求的库的,很多东西只能自己写。

至于题主提到的:还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python本身写爬虫已经很简单了。third party library可以做到built-in library做不到或者做起来很困难的事情,仅此而已。还有就是,爬虫简不简单,完全取决于需求,跟Python是没什么关系的。

要处理 js 运行后的结果,可以使用 html5lib。

但我觉得最好的是用 beautifulsoup4 的接口,让它内部用 html5lib。

自己写爬虫的话,用一些异步事件驱动库,如gevent,比单纯多线程要好很多。

大二的时候写了一个网络爬虫 爬取 http://amazon.com的某类商品的bestseller top100 的所有评论。

也不用什么框架,在linux下用的叫做 beautifulsoup的库帮助解析html,正则表达式也可以啦 不过好麻烦。

爬虫好慢啦,有个小技巧是走代理,因为是外国网站嘛,非常慢,而且可以防止同一个ip访问次数太多。

大概有几万个网页吧,然后用beautifsoup解析,挑一些自己感兴趣的数据,比如打分、评论、商家、分类什么的。然后用一些科学库做一些简单的统计和报表,比如 numpy、scipy、matplotlib等。网上也有好多数据生成报表的 js 库,很酷炫,也很不错的 :)

恩,就是这样。

我也来回答一下吧.

如果楼主想爬去更大规模的东西,可以有两种方案,一种自己写一个爬虫框架,另一总通过爬虫框架.

1,自己动手写一个爬虫框架,我没写过没法说

2,通过线程的爬虫框框架.

用的比较多的是scrapy,首先scrapy异步,然后scrapy可以写成分布式爬虫.这样面对大数据再也不用爬一辈子啦.

另外还有pyspider,sola等.更多的爬虫我也在收集中,不过如果你要着手开始用框架的话,大概只能找到这两个,究其原因,还是因为很多框架是是英语写的吧,大部分不愿意爬英语的坑.

还有有人提到cola,这个是国人写的,作者这样说过

靠,以前只是听过scrapy,从来没去看过,刚看了一下,发现除了分布式的部分,竟然真挺像的。

从scrapy倒是有启发可以保存json文件的形式,减少对数据库的依赖。

想了一下,分布式还是我的初衷,真没想到其他部分这么相近。其实用那个框架到不是一件值得纠结的事,因为几乎没得选.

第二个问题.python自己的类库和框架有什么区别?

你问这样的问题,是因为,你现在爬的需求还很简单!!

仅仅是爬静态页的话,而且爬不了多少个,真心建议你喜欢什么就用什么好了,或者直接就用类库吧,推荐requests,几行代码就搞定了

但是,生活中不光有静态页这种东西啊,还有ajax,还有js,还有各种各样莫名其妙的细节.

而细节是相当可怕的存在,比如,数据的提取,用正则还是xpath,为什么不是所有的页面都有下一页,一晚上爬了5000条数据,我一共有20万条怎么办,爬虫又被封了,我靠.

有时候想想自己真够坚定不移的.也真是烦

这个时候,你就会知道框架的好处了,框架最大的作用,在于用最简单的方法帮助你实现需求,也就是说,如果你现在可以很好的满足工作的需要,那就不要看框架,如果工作有些吃力,那就去看看吧,说不定别人已经造好了轮子,等着你推车呢!老汉!

cola的链接给你吧

Cola:一个分布式爬虫框架

scrapy百度就是

pyspider还没用

这个要看个人了,开始可以先看scrapy方面的内容,然后结合redis,实现分布式,具体实现可以参考github上的代码,如chineking/cola · GitHub。

存储的话,需要mongodb,要深入的话,这方面的内容还是挺多,而且mongodb可以实现集群式存储,完全可以满足楼主的要求。

框架有很多,比如爬虫框架 | 为自己写代码,楼主可以尝试下。

爬取大规模的数据其实可以通过分布式来实现。

我的博客里有很详细的叙述和源码,python3.4实现。

欢迎交流 网络资源搜索爬虫(python 3.4.1实现)

写了一个小爬虫爬学校学生的照片成绩,爬了三四天。好几次都是卡死

我开发了一个云端爬虫开发框架:神箭手,可以让开发者在云上使用Javascript编写和运行爬虫,欢迎大家来使用拍砖~

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

python 爬虫框架对比_用Python写爬虫,用什么方式、框架比较好?相关推荐

  1. python爬表情包_【从零开始写爬虫一】批量下载表情包

    序 打算写个关于node的爬虫菜鸟教程,接下来将带大家一步一步写一个表情包爬虫,从获取页面,解析表情包链接, 清洗脏数据,下载表情包到本地.开始之前你需要有对chrome调试工具和ES6有一定了解,包 ...

  2. python 爬虫框架对比_几种爬虫框架效果分析,python最好爬虫框架是哪一种?

    爬虫可以用不同的语言编写,而且爬虫框架也多,比如python,简单易学,也是有不同的爬虫框架,python最好爬虫框架是哪一种呢?这些爬虫框架都有什么优缺点? 一.爬虫框架使用对比分析 多学习爬虫的框 ...

  3. python生成json接口_基于python的Flask框架写json接口并且结合eolinker进行接口测试

    一.前言 很多时候为了提高软件开发的效率,后端程序人员理想状态下应该编写程序测试接口供前端程序人员进行测试,以便前端的开发.笔者由于项目的需求近期尝试学习了一下测试接口的编写,以Python+Flas ...

  4. 爬虫cookie过期_【Python】Scrapy爬虫框架之Request和Response

    说明 Scrapy的Request和Response对象用于爬取网站. HTTP是无状态的面向连接的协议, 为了保持连接状态, 引入了Cookie机制 Cookie是http消息头中的一种属性,包括: ...

  5. python爬虫基础知识点_入门Python爬虫知识点梳理

    [小宅按]爬虫基本原理就是通过网络请求从远程服务器下载数据的过程,而这个网络请求背后的技术就是基于 HTTP 协议.作为入门爬虫来说,用户需要了解 HTTP协议的基本原理,虽然 HTTP 规范用一本书 ...

  6. python数据整理 高一_关于Python爬虫的最全知识梳理,项目经理花了三天总结出来的经验...

    作爲零基础小白,大体上可分爲三个阶段去完成,第一阶段是入门,掌握必备基础知识,比如Python基础.网络央求的基本原理等,第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,熟习主流的爬虫工具,第三 ...

  7. python简单实践作业_【Python】:简单爬虫作业

    使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...

  8. 用python爬虫下载视频_使用Python编写简单网络爬虫抓取视频下载资源

    我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...

  9. 如何给python爬虫加界面_给Python爬虫做一个界面.上

    做爬虫做了那么久,开始逐渐不满足写好程序,每次只能完成一件事情.开始思考如何可以做一个简单界面交互,再增加爬虫的可操作室,做交互界面有两个思路: 用Django做一个web界面: 用PyQt做一个ex ...

最新文章

  1. 【linux】Valgrind工具集详解(六):使用Valgrind gdbserver和GDB调试程序
  2. 计算机辅助设计基础学什么,东大计算机辅助设计基础X20秋学期《计算机辅助设计基础》在线平时作业3资料...
  3. 第4章 原子操作 第二节
  4. [openjudge6043]哆啦A梦的时光机
  5. 普强“千语”语音识别引擎应用场景
  6. Swagger生成WebAPI文档
  7. js模块化开发——模块的写法
  8. Linux课堂练习2
  9. 《阿里巴巴大数据实践-大数据之路》读后感言
  10. 有哪些好用的微信群管理工具?
  11. 明日方舟公式计算机,【科普向】明日方舟里的伤害计算公式
  12. 蓝桥杯-算法训练-跳马
  13. java正则表达式匹配任意中文_java匹配中文的正则表达式
  14. IDEA:Idea 集成 EasyYApi 插件实现接口文档的生成与更新
  15. SMC SY系列电磁换向阀
  16. “燕云十六将”之陈丽辉(11)
  17. 霍夫丁不等式 Hoeffding inequality
  18. 【Python专题】函数式编程
  19. 职场老油条的22条经验之谈
  20. jsp+servlet实现注册,登录等的案例

热门文章

  1. 数据分析 | 交叉验证
  2. c语言在屏幕上显示字母,C语言在屏幕上的显示内容
  3. Ruoyi框架学习--服务监控
  4. 提取pdf文件中文字的两种方法
  5. nft数字藏品如何卖出去(浅谈数字藏品的合规交易流程
  6. stm32定时器实现 微秒延时
  7. react-native原生GPS与高德地图坐标,百度地图坐标系的转换
  8. axios请求配置baseURL选项
  9. 记一次mariadb 安装 出现scok异常
  10. 弘辽科技:拼多多新店dsr分多久出?如何提高?