洗礼灵魂,修炼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很多地方都比其他的很简单
免责声明
本博文只是为了分享技术和共同学习为目的,并不出于商业目的和用途,也不希望用于商业用途,特此声明。如果内容中测试的贵站站长有异议,请联系我立即删除
洗礼灵魂,修炼python(50)--爬虫篇—基础认识的更多相关文章
- [Python笔记]第一篇:基础知识
本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...
- 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...
- 03.Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Python网络爬虫相关基础概念
什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫 1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...
- Python爬虫《Python网络爬虫相关基础概念》
引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从 ...
- 03,Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从就业上. 我们都知道,当前我们所处的时代 ...
- 《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- Python学习——爬虫篇
requests 使用requests进行爬取 下面是我编写的第一个爬虫的脚本 import requests # 导入reques ...
随机推荐
- druid的关键参数+数据库连接池运行原理
minEvictableIdleTimeMillis :连接保持空闲而不被驱逐的最长存活时间.(默认30分钟) Destory线程中如果检测到当前连接的最后活跃时间和当前时间的差值大于minEvi ...
- window7利用Nexus搭建maven私有服务器
下载地址 https://www.sonatype.com/oss-thank-you-win64.zip: cmd管理员运行命令 nexus.exe/install Nexus Service:(n ...
- Mac 常用软件下载及使用教程地址推荐
知您网: http://www.zhinin.com Xclient:http://xclient.info/?t=40707b872b81127fdfd1dc4700d1a155c12f35bd 音 ...
- 关于appendChild和insertBefore appendTo()和append
appendChild和insertBefore(原生js) appendTo()和append(jquery)
- Hadoop2源码分析-RPC探索实战
1.概述 在<Hadoop2源码分析-RPC机制初识>博客中,我们对RPC机制有了初步的认识和了解,下面我们对Hadoop V2的RPC机制做进一步探索,在研究Hadoop V2的RPC机 ...
- 扩展方法IEnumerable<T>转换为IList<SelectListItem> ,提供@Html.DropDownList使用
由于在MVC中经常会使用到@Html.DropDownList方法,而该方法接收的是List<SelectListItem> 参数,因此就想着写一个扩展方法,直接把IEnumerable转 ...
- 开源网站流量统计系统Piwik源码分析——后台处理(二)
在第一篇文章中,重点介绍了脚本需要搜集的数据,而本篇主要介绍的是服务器端如何处理客户端发送过来的请求和参数. 一.设备信息检测 通过分析User-Agent请求首部(如下图红线框出的部分),可以得到相 ...
- 自己动手实现java数据结构(一) 向量
1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址.为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为数组(Array)的数据结构与之对应.在使用数组时需要事先 ...
- ruby执行字符串代码
str = "a='abcd'; a.reverse" 字符串str为ruby代码,执行方法eval eval str => "dcba"
- JavaWeb学习 (十三)————JSP
一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写h ...