网络爬虫

网络爬虫基本原理 | 知乎

前辈建议 | 知乎

2016-02-16
深圳龙岗区
天气:多云 21度

python写爬虫

  1. 内置库实现:requests
  2. Scrapy:异步,分布式爬虫,基于这个框架来写自己的爬虫,简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。
  3. html5lib:处理 js 运行后的结果
  4. 用 beautifulsoup4 的接口,让它内部用 html5lib
  5. Beautiful Soup。名气大,整合了一些常用爬虫需求。缺点:不能加载JS,可解析html,用一些科学库做一些简单的统计和报表,比如 numpy、scipy、matplotlib等。
  6. mechanize。优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。
  7. selenium。这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。
  8. cola。一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高,不过值得借鉴。
  9. pyspider
  10. sola

处理对象

  1. 静态页面
  2. ajax
  3. js

问题

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

指导

  1. 先看scrapy方面的内容,然后结合redis,实现分布式,参考chineking/cola
    GitHub。存储用mongodb,可以实现集群式存储。
  2. 爬虫框架|为自己写代码。
  3. 用一些异步事件驱动库,如gevent,比单纯多线程要好很多。

你可能感兴趣的:(爬虫,网络爬虫,python)