洗礼灵魂,修炼python(50)--爬虫篇—基础认识

爬虫

1.什么是爬虫

爬虫就是昆虫一类的其中一个爬行物种,擅长爬行。

哈哈,开玩笑,在编程里,爬虫其实全名叫网络爬虫,网络爬虫,又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者。是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫(这一点倒是和我上面说的虫很形象)。

这个解释有点官方了,说直白点,用过百度查找资料吗?你肯定用过吧,你知道像百度这样的搜索引擎什么原理吗?其实就是爬虫,不断的到各大网站链接里去爬取数据并通过专有机制分析并分类处理(想必搞SEO的人应该更了解这些东西),当用户搜索一个关键词,如果这个关键词与数据里的某个分类标签相同,则把之前存放好的相关数据反馈给用户。这整个过程里使用的程序就是爬虫,而这种功能实现就是爬虫的实现,而用python作为爬虫的搞得名声最响亮的,目前我知道的就是谷歌搜索。

再说直白点,其实爬虫分两个步骤,爬和取,当你打开浏览器看到我这篇博文标题,并点击进来查看,这个操作的过程就是在爬数据,然后你觉得重要的文字复制记录到你的笔记里,这个操作就叫取数据。

注意:爬虫只能爬取浏览器能访问的数据,并不能爬取看不到的数据,比如你说你想通过爬虫爬取谁谁谁的银行卡信息,然后把TA的钱搞到你帐上等等的,或者你想爬取某某论坛设置权限的页面等等的,这些都是不能实现的。

2.在python中怎么使用爬虫爬取数据

在python中,需要使用urllib,rurllib2,requests,等的模块来爬取数据:

例爬取百度首页(声明:本博文只是作学术研究,并无对百度网站进行攻击等

 注意:以下代码都是在python2中,python3中不存在urllib和urllib2模块,在python3中,把相关的urllib模块组合成了一个包,都在urllib包下

# -*- coding:utf-8 -*-
import urllib

url='http://www.baidu.com' #百度网址。传入urlopen()的参数有特别说要求,要遵循一些网络协议,比如http,ftp等,不能是一个随便的字符串
html=urllib.urlopen(url).read() #利用模块urllib里的urlopen方法打开网页
result=html.read()# 用read方法读取出来
print(result) #打印读取的页面操作

结果:

(由于内容太多没有截全)

到底是不是百度的页面呢?

打开百度,鼠标右键-查看网页源代码:

 

 

这里的片段刚好能和前面爬到的结果对应。

或者你也可以把爬到的首页源代码写入到一个html空文档里,再以浏览器形式打开看看。这里就不演示了,我可以很肯定的告诉你,确实是百度首页的源代码。

不过要提醒的是,如果你的浏览器在以登录百度账号的情况下,打开百度的首页源代码显示的结果有点不一样,这个情况很正常,不用怀疑代码问题,比如我的:

 

3.爬取的数据能干什么

你想一下,现在是大数据网络时代,网络上的东西基本啥都有,有你想不到的,也有你不敢想的都有(关于网络安全一块以后有时间更新),然后爬虫是干嘛的呢?只要网上有的并且浏览器可以访问的,都可以爬取,你可能会说,有的网站不是要登录帐号才能访问吗?是的,确实是这样,但是这种网站一样可以爬取,那有的接触的挺多网络信息的朋友说,能爬取暗网里的数据吗?我也可以说,也可以的(不知道什么是暗网的直接略过,建议不要去了解无端给你心里添堵)。

爬虫用的最多的地方就是搜索引擎,其次是企业间的竞争,再其次是网站间的流量竞争,再其次是个人的爱好使用等等……

 

最后我想说的是,爬虫也不止是python可以写,比如JAVA也可以写等等的,但是个人觉得在写爬虫这一块python是最简单的,其实当你学会python后,你会发现python很多地方都比其他的很简单

免责声明

本博文只是为了分享技术和共同学习为目的,并不出于商业目的和用途,也不希望用于商业用途,特此声明。如果内容中测试的贵站站长有异议,请联系我立即删除

原文地址:https://www.cnblogs.com/Eeyhan/p/7762963.html