python selenium采集速卖通_2.不苟的爬虫小教程系列:python爬虫技术栈介绍

鉴于爬虫初学者们,往往也是编程的初学者,我在这里介绍一套最常用的技术栈,不求多,只求精。

毕竟我们的目标是采集到数据,只要能够成功实现目标的工具就是好工具。

  1. 爬虫框架scrapy:该框架是scrapinghub公司开发并开源的,经历过时间的检验,好用,性能佳。
  2. http请求库requests:requests官方是这样介绍这个库的:“Requests 是个为Python而写的优雅又简单的HTTP库”我们可以在爬虫代码开发过程中使用这个库进行调试,甚至一些简单的爬虫完全可以只用requests来实现。
  3. http请求curl:说起调试爬虫,就一定得提到curl,这个工具非常好用。在chrome中可以一键生成某个请求的curl命令,然后修改参数以调试可验证接口可接受参数的范围。

一个爬虫所需要的工具就这么多了。除了上面介绍的这些,你可能还需要一台电脑和一根网线。

在本教程中,不会过多涉及存储。你完全可以将采集回来的数据以任何你认为方便的方式存储。如果你不太会使用数据库的话,直接用文件存储也可以。


如果你还想了解更多的话,可以看看下面这些工具。

  1. urllib3:其实还有urllib和urllib2,是比较底层的原生http请求库。如果你没有直接使用过它们,那说明你不需要学习它们。
  2. grab:另一个爬虫框架,并非python爬虫业界主流。有兴趣可以读读源码。
  3. asyncio:py3中的一个异步协程库。
  4. aiohttp:基于asyncio实现的一个异步协程http请求库。
  5. pyspider:爬虫专家binux业余开发的一套爬虫框架,带UI展示。但是维护不频繁,也不如scrapy好用。大家有空可以读读源码学习一下,不推荐工业使用。

模拟浏览器:

  1. 以前常用技术栈有selenium+phatomjs,其中selenium是个自动化测试框架,phatomjs是个无界面浏览器,但phatomjs已经停止开发了。
  2. 目前更为常用的方案应该是selenium+chrome headless,或是pyppeteer跟splash。
  3. chrome headless就是chrome浏览器的无界面版本,我们将在后续文章中着重介绍。
  4. pyppeteer则是基于puppeteer进行封装的另一个chrome headless自动化测试框架。
  5. splash则是scrapinghub公司研发的,比较适合只对js进行渲染,而不进行点击或任何其他步骤的操作。

抓包分析工具:

  1. 最常用的还是chrome和firefox的开发者工具,我们的教程中几乎都是chrome开发者工具作为示例。
  2. app抓包可以使用fiddler和charless,如果搞不定就得上更加高端的wireshark。甚至是mitmproxy或anyproxy进行抓包。
  3. 后续在我们讲解到app抓取时,我们会比较详细的介绍app如何反编译,找到加密算法。但其实app抓取更常用的手段是Appium模拟,这类似于PC端使用浏览器进行渲染。

建议爬虫初学者不要一次学习太多工具,只要先对每个工具的作用做一个初步了解,后续伴随着项目的进行,遇到合适的场景下选择合适的工具即可。

你可能感兴趣的:(python,selenium采集速卖通,python如何请求curl)