浅谈Python之爬虫
1
相信大家对Python这种神奇的语言都不陌生了吧,它的热度可是可谓频频登上程序猿圈子的热搜。那么今天我们就来说说python中的一项很有趣的技术——网络爬虫。
1 简介:
爬虫主要针对与网络网页,又称网络爬虫、网络蜘蛛,可以自动化浏览网络中的信息,或者说是一种网络机器人。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或更新这些网站的内容和检索方式。它们可以自动采集所有其能够访问到的页面内容,以便程序做下一步的处理。
2 工作原理:
在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库,并对其建立索引。
3 爬虫分类:
开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?上面说的爬虫,基本可以分3类:(1)分布式爬虫:Nutch(2)JAVA爬虫:Crawler4j、WebMagic、WebCollector(3)非JAVA爬虫:scrapy(基于Python语言开发)
相信你看到这里一定会有一个疑惑,我们网站的数据不想让他人轻易爬取怎么办呢!!!
这就涉及到了反爬虫技术
一般网站从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。前两种比较容易遇到,大多数网站都从这些角度来反爬虫。第三种一些应用ajax的网站会采用,这样增大了爬取的难度。
供稿:邢彬
供图:邢彬 曹纪伦
编辑:曹纪伦
领取专属 10元无门槛券
私享最新 技术干货