浅谈Python之爬虫

浅谈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的网站会采用,这样增大了爬取的难度。

供稿:邢彬

供图:邢彬 曹纪伦

编辑:曹纪伦

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191201A0K43D00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券