爬虫

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)--爬虫篇—基础认识的更多相关文章

  1. [Python笔记]第一篇:基础知识

    本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...

  2. 爬虫(二)Python网络爬虫相关基础概念、爬取get请求的页面数据

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  3. 03.Python网络爬虫第一弹《Python网络爬虫相关基础概念》

    爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...

  4. Python网络爬虫第一弹《Python网络爬虫相关基础概念》

    爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...

  5. Python网络爬虫相关基础概念

    什么是爬虫 爬虫就是通过编写程序模拟浏览器上网,然后让其去互联网上抓取数据的过程. 哪些语言可以实现爬虫    1.php:可以实现爬虫.php被号称是全世界最优美的语言(当然是其自己号称的,就是王婆 ...

  6. Python爬虫《Python网络爬虫相关基础概念》

    引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从 ...

  7. 03,Python网络爬虫第一弹《Python网络爬虫相关基础概念》

    爬虫介绍 引入 为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的应用还是从就业上. 我们都知道,当前我们所处的时代 ...

  8. 《Python网络爬虫相关基础概念》

    爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...

  9. Python学习——爬虫篇

    requests 使用requests进行爬取                 下面是我编写的第一个爬虫的脚本                   import requests # 导入reques ...

随机推荐

  1. C# 获取媒体文件播放时长

    引用: Interop.Shell32.dll 方法: /// <summary> /// 获取媒体文件播放时长 /// </summary> /// <param na ...

  2. 使用JDBC连接各种数据库

    项目需要连多钟数据库,把链接的关键部分在这里记录下来. 1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.Oracle ...

  3. [Umbraco] umbraco中如何分页

    分页功能应该说是web开发中最基本的功能了,常规的做法是通过查询sql语句进行分页数据显示.但在umbraco中却不是这样子的.而且通过xpath中的postion来定位.如下代码 <?xml ...

  4. Java并发框架AbstractQueuedSynchronizer(AQS)

    1.前言 本文介绍一下Java并发框架AQS,这是大神Doug Lea在JDK5的时候设计的一个抽象类,主要用于并发方面,功能强大.在新增的并发包中,很多工具类都能看到这个的影子,比如:CountDo ...

  5. asp.net core的docker实践

    如果centos中没有安装和docker和.net core镜像,先安装docker和asp.net core 镜像 安装dockeryum -y install docker-io 启动 Docke ...

  6. vmware workstation 提示程序包可能有错,错误代码 29141 & 提示不可恢复错误: (vcpu-0)

    问题一:提示程序包可能有错,错误代码 29141 换了n个版本(vmware workstation 10,11, 12),下载了n次,都提示该错误(29141),明明程序包没错啊, 一开始还怀疑是我 ...

  7. php网页上传文件到Ubuntu服务器(input type=fire)- 赖大大

    直接上代码: <form enctype="multipart/form-data" method="post" action=""& ...

  8. CSS hack兼容表

    IE6 IE7 IE8 Firefox Opera Safari !important Y Y Y Y Y _ Y * Y Y *+ Y \9 Y Y Y \0 Y nth-of-type(1) Y ...

  9. 记一次IDEA编译器调优

    前言: 我们知道,IDEA是用Java写的,那么他肯定也存在虚拟机的调优的问题,那么今天我们就对它进行开刀. 下面是默认参数 位置在:C:\Program Files\JetBrains\Intell ...

  10. LeetCode两数之和-Python<一>

    下一篇:LeetCode链表相加-Python<二> 题目:https://leetcode-cn.com/problems/two-sum/description/ 给定一个整数数组和一 ...