博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 爬虫的工具链
阅读量:7088 次
发布时间:2019-06-28

本文共 1204 字,大约阅读时间需要 4 分钟。

资料爬虫是资料分析的入门砖,Python 更是资料爬虫的热门工具。因为热门,所以也会有许许多多相关的配套工具出现。但对于新手来说,该如何寻找到适合的工具其实是很麻烦的。这一篇文章会介绍一下几个比较主流的相关工具,与他们适合的使用时机。

/ urllib

Requests 或是 urllib 这两个套件都是用于处理 HTTP 协定的工具。 urllib 是内建于 Python 有比较完整的 HTTP 的功能(包含网址编码、档案下载之类的),Requests 则比较着重在友善地处理 Request/Response 的传输。

/

BeautifulSoup 与 Pyquery 是用在接到 HTML 字串的 Response 之后,要如何将他们解析为一个 DOM base 的物件使用。 lxml 跟 html5lib 是两个作为读懂 HTML 字串的解析器(parser)。这两个套件都支援使用类似 css selector 的方式找资料。

Xpath

XPath 是基于 XML 格式的定位技术,也可以将 HTML 视为是 XML 的方式处理,再使用 XPath 找到需要的资料。

Selenium 原本是用于网页测试的浏览器模拟工具。但随着动态网页/AJAX 的技术方法,仅透过 Requests 的话会遇到 JavaScript loading 的问题,因此可以搭配 Selenium 这样的浏览器模拟工具,来达到执行 JavaScript 的效果。

原本的 Selenium 模拟工具需要调用实体的浏览器,像是 Chrome、Firefox 之类的,会造成资源与效能的问题。 PhantomJS 则是一个在 Selenium 中的虚拟浏览器方案,可以在不须打开实体浏览器的情况下进行模拟。

前面提到的 Selenium 是为了解决无法执行 JavaScript 的动态网页问题,是透过真的模拟浏览器的运作来处理。 Ghost 则是透过 Python 中来模拟 JavaScript 的程式,达到动态产生资料的目标。

前面讲的主要是「基于一个网页的资料撷取爬虫」,而 Scrapy 则是一个爬虫的框架,目标是想要一次将多个网页都爬取下来。

Pyspider 提供了 Web UI 操作页面的爬虫框架,他也能支援多个网页的下载。

小结

以上这些爬虫工具大致可以分为几个类型:

  1. 静态网站的资料取得:Requests / urllib
  2. 网页资料的解析爬取:BeautifulSoup / Pyquery / Xpath
  3. 动态网站的资料取得:Selenium / PhantomJS / Ghost
  4. 多页面的爬虫框架:Scrapy / Pyspider

License

本著作由制作, 以授权条款释出。

转载于:https://juejin.im/post/5ba5f98ff265da0abd351a47

你可能感兴趣的文章
ddt
查看>>
Java异常处理课后作业
查看>>
<<TCP/IP高效编程>>读书笔记
查看>>
hrtf 旋转音效matlab实现
查看>>
sqlserver 导入数据出现 无法创建 OLE DB 取值函数。请查看列元数据是否有效
查看>>
block的复习
查看>>
Linux常用命令记录
查看>>
PureMVC和Unity3D的UGUI制作一个简单的员工管理系统实例
查看>>
百度地图坐标转换
查看>>
JavaWeb工作原理
查看>>
MATLAB:图像选取局部区域滤波(roicolor、roipoly、roifill、fspecial、roifilt2函数)...
查看>>
20331关系数据库设计技术
查看>>
wget: unable to resolve host address “mirrors.163.com” 的解决办法
查看>>
JQUERY和AJAX学习
查看>>
git的使用
查看>>
软件平台ThinkSNS+软件系统研发日记
查看>>
samba 使用tips
查看>>
__attribute__
查看>>
[转] 理解 LSTM 网络
查看>>
读取bin文件,并且按结构体赋值打印
查看>>