洗礼灵魂,修炼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 ...
随机推荐
- Rip配置
Rip配置 首先建立如图拓扑图 分别配置两台电脑的ip地址和子网掩码和网关.如图所示. 在router0上配置两个端口的IP以及子网掩码 在路由器router0上配置rip2协议.里面的no auto ...
- [源码]python Scapy Ftp密码嗅探
[源码]python Scapy Ftp密码嗅探 原理很简单,FTP密码明文传输的 截取tcp 21端口User和Pass数据即可 Scapy框架编译程序较大(一个空程序都25M),所以就不提供exe ...
- 超级详细使用Webpack4.X 搭建H5开发环境
超级详细使用Webpack4.X 搭建H5开发环境 会撸码的小马 关注 2018.05.29 17:17* 字数 603 阅读 6453评论 0喜欢 5 很久没弄博客了,这两天有点时间来搞一下最近在弄 ...
- linux中awk的使用
在linux中awk绝对是核心工具,特别是在查找搜索这一领域,和掌握sed命令一样重要 下面为awk的一些基本知识,基于这些知识,可以让你随意操控一个文件: 在awk中:()括号为条件块,{}为执行的 ...
- 200. Orchard学习 目录
201. Orchard学习 一.基础 210. Orchard学习 二.启动 211. Orchard学习 二 1.Application_Start 212. Orchard学习 二 2.Manu ...
- mysql 开发进阶篇系列 39 mysql日志之二进制日志(binlog)
一.概述 二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句, 语句以"事件"的形式保存,它描述了数据的更改过程, ...
- android 中的Http请求类HttpUrlConnection和HttpClient类
Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient. 如何选择这两个类的使用:android-developers.blogspot.com/2011 ...
- Android应用系列:双击返回键退出程序
前言 有一个很古老的应用技巧,一直被各种大大小小的app用得乐此不疲,那就是双击返回键退出程序.今天就写写它的实现代码,非常简单而且实用. 正文 双击返回键退出程序,一般有两种实现思路,一种是用一个布 ...
- 转:Bash Shell常用快捷键
转载:原文出处 移动光标 ctrl+b: 前移一个字符(backward) ctrl+f: 后移一个字符(forward) alt+b: 前移一个单词 alt+f: 后移一个单词 ctrl+a: 移到 ...
- 自己动手实现java数据结构(六)二叉搜索树
1.二叉搜索树介绍 前面我们已经介绍过了向量和链表.有序向量可以以二分查找的方式高效的查找特定元素,而缺点是插入删除的效率较低(需要整体移动内部元素):链表的优点在于插入,删除元素时效率较高,但由于不 ...