Skip to main content
 Web开发网 » 编程语言 » Python语言

python的爬虫都有什么内置函数?

2021年11月27日8950百度已收录

python的爬虫都有什么内置函数?  Python函数 第1张

python爬虫,我用最多的是框架Scrapy,其次便是beautiful soup,以及selenium、Requests库等,最基础的就是urllib和正则re了。

python的爬虫都有什么内置函数?  Python函数 第2张

当然,我不知道题主为什么要问内置函数,所谓内置函数,一般都是因为使用比较频繁或是元操作,然后提前定义好,直接调用。这样的内置函数,python里面有很多,大概可以分为基本的数据操作、逻辑操作、集合操作、基本IO操作、反射操作、字符串操作等。它们随着python解释器的运行而创建,在Python的程序中,你可以随时调用这些函数,不需要定义。

python的爬虫都有什么内置函数?  Python函数 第3张

仔细想来,我也不好说哪些内置函数就一定是为爬虫而生的,它们只是在代码的某个环节小用了一下而已,主要还是靠爬虫相关的包来支撑。

但如果追根溯源,题主可以去参考python的源码,现在python源码已经迁移到GitHub上了,不过由于是用C写的,故看起来会比较费神。源码地址:

python的爬虫都有什么内置函数?  Python函数 第4张

下面就讲讲爬虫常用到的一些模块包好了。

re、urllib、time标准库time可以用来延时,以免爬虫代码被封,而正则表达式re和urllib模块则是学习python爬虫最基础的,也是最重要的。

urllib模块提供了丰富的上层接口,使我们可以处理跟url相关的大多数事务,包括设置Headers、Proxy 、错误解析、Cookie 等,从而像读取本地文件一样读取 协议相关知识。

而正则表达式相信学过高级语言的朋友都不会陌生了,当用urllib提取到目标页面的信息后,我们需要用正则表达式来匹配查找,获得最终的内容,然后进行下一步的处理。

python的爬虫都有什么内置函数?  Python函数 第5张

这里需要提一下,urllib模块在python2和python3中变化很大,上面是用python3写的,学习的时候注意一下。

requests当然,如果你把urllib和re用熟了,再来学用requests库的话,你会感觉眼前豁然开朗,它基于 urllib开发,比urllib用起来更简单顺手,函数功能更强大,是一个很实用的Python )。

有趣的是,现在requests的官方文档出中文版了,十分详尽,言语风趣幽默:

python的爬虫都有什么内置函数?  Python函数 第6张

Beautiful Soup和 lxml、Selenium和PhantomJS、PyQuery等从这里开始,就要步入爬虫真正的门槛了,上面的这些工具都可以同时学,体验一下。同时,考虑到我们爬取的网页内容可能有静态的、动态的,甚至还有将数据压缩的网站,除此之外,还涉及到网页需要登录,登录需要验证码,验证码的难易程度,还有付费与免费资源的区别等等!这些都是在这一阶段必须要考虑和解决的问题了。

Beautiful Soup 是解析网页的一款神器。它可以从 HTML 或者 XML 文件中提取数据;Xpath 也是一款神器。它是一款高效的、表达清晰简单的分析语言。掌握它以后介意弃用正则表达式了。一般是使用浏览器的开发者工具加 lxml 库。

PhantomJS是一款没有界面的浏览器,Selenium便是浏览器驱动,他们俩配合使用,可以爬取那些动态加载的网页,当然,测试的时候还是可以使用Selenium+Chrome的。

若是提到验证码识别,那涉及的就多了,不过,在爬虫领域,你先需要了解的,也不算多,可以了解一下PIL+Tesseract,一个是图像处理,一个便是训练和识别验证码的库,这里有很多难点,需要多查资料学习。

如果你对js熟悉,又来做爬虫,那么PyQuery对你来说就是最友好的了, 它是仿照 jQuery ,语法与 jQuery 几乎完全相同,所以不用再去费心去记一些奇怪的方法了,这样解析起网页来就更得心应手了。

多线程threading和多进程muiltprocessing有人说, Python 的多线程是鸡肋,不是真正意义上的多线程?但以我的亲身实践来看,开的线程达到10以上,甚至50,那肯定对效率是有很大提升的。

所以,到了这一步,你就把他用起来吧!别管那么多。

终极利器Scrapy框架、PySpider框架等Scrapy 是一个功能非常强大的分布式爬虫框架,学会了它,就可以不用重复造轮子,但基础还是要一步一步来。

python的爬虫都有什么内置函数?  Python函数 第7张

当然,爬虫框架越来越多,如果非要做一个比较,pyspider上手简单,操作简便,它增加了 WEB 界面,写爬虫迅速,且集成了phantomjs,可以用来抓取js渲染的页面。

python的爬虫都有什么内置函数?  Python函数 第8张

而Scrapy自定义程度相对较高,比 PySpider更底层一些,适合学习研究,需要学习的相关知识多,不过自己拿来研究分布式和多线程等等是非常合适的。

python的爬虫都有什么内置函数?  Python函数 第9张

最后,给大家推荐一个学习爬虫的博客

python爬虫系列课程推荐:

祝君进步!新年快乐!

评论列表暂无评论
发表评论
微信