一、前言


你是不是在为想收集数据而不知道如何收集而着急?

你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼?

Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式,把每个部分都跟实际的例子结合起来帮助小伙伴儿们理解。最后再写几个实战的例子。

我们使用Python来写爬虫,一方面因为Python是一个特别适合变成入门的语言,另一方面,Python也有很多爬虫相关的工具包,能够简单快速的开发出我们的小爬虫。

本系列采用Python3.5版本,毕竟2.7会慢慢退出历史舞台~

那么,接下来,你得知道什么是爬虫、爬虫从哪里爬取数据的,以及,学习爬虫都要学习哪些东西。

二、什么是爬虫


来看看百度百科是如何定义的

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

什么?没看懂?没关系,我来给你解释一下

打开一个网页,里面有网页内容吧,想象一下,有个工具,可以把网页上的内容获取下来,存到你想要的地方,这个工具就是我们今天的主角:爬虫。

这样是不是更清晰了呢?

既然了解了爬虫是什么,那么爬虫是如何爬取数据的呢?

三、爬虫是哪里爬取数据的


打开浏览器(强烈建议谷歌浏览器),找到浏览器地址栏,然后在里敲music.163.com,你会看到网页内容。

欸,图片中间那俩人在干嘛?(单身狗请主动防御,这是误伤,这真的是误伤!)

鼠标在页面上点击右键,然后点击view page source。看到这些文字了吗?这才是网页最赤果果的样子。

其实所有的网页都是HTML代码,只不过浏览器将这些代码解析成了上面的网页,我们的小爬虫抓取的其实就是HTML代码中的文本啦。

这不合理啊,难不成那些图片也是文本?

恭喜你,答对了。回到浏览器中有图的哪个tab页,鼠标右键,点击Inspect。会弹出一个面板,点击板左上角的箭头,点击虐狗图片,你会看到下面有红圈圈的地方,是图片的网络地址。图片可以通过该地址保存到本地哦。

你猜的没错,我们的小爬虫抓取的正是网页中的数据,你要知道你想要抓取什么数据,你的目标网站是什么,才可以把想法变成现实的哦。你不能说,我想要这个这个,还有这个,然后数据就自动来了。。。(是不是让你想起了你的导师或老板?)

四、学习爬虫的必备知识


大家要先对以下内容有一定的了解再来学习爬虫哦,磨刀不误砍柴工

  • HTML

    这个能够帮助你了解网页的结构,内容等。可以参考W3School的教程。

  • Python

    如果有编程基础的小伙伴儿,推荐看一个廖雪峰的Python教程就够了

    没有编程基础的小伙伴,推荐看看视频教程(网易云课堂搜Python),然后再结合廖雪峰的教程,双管齐下。

    其实知乎上总结的已经非常好了,我就不多唠叨了。知乎-如何系统的自学Python

  • TCP/IP协议,HTTP协议

    这些知识能够让你了解在网络请求和网络传输上的基本原理,了解就行,能够帮助今后写爬虫的时候理解爬虫的逻辑。

    廖雪峰Python教程里也有简单介绍,可以参考:TCP/IP简介,HTTP协议

    想更深入学习的小伙伴儿可以去网上多搜搜相关的书籍哦

OK, 下一篇就开始我们的实战啦

Python爬虫小白入门(一)写在前面的更多相关文章

  1. Python爬虫小白入门(一)入门介绍

    一.前言 你是不是在为想收集数据而不知道如何收集而着急? 你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼? Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式, ...

  2. Python爬虫小白入门(四)PhatomJS+Selenium第一篇

    一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...

  3. Python爬虫小白入门(三)BeautifulSoup库

    # 一.前言 *** 上一篇演示了如何使用requests模块向网站发送http请求,获取到网页的HTML数据.这篇来演示如何使用BeautifulSoup模块来从HTML文本中提取我们想要的数据. ...

  4. Python爬虫小白入门(五)PhatomJS+Selenium第二篇

    一.前言 前文介绍了PhatomJS 和Selenium 的用法,工具准备完毕,我们来看看如何使用它们来改造我们之前写的小爬虫. 我们的目的是模拟页面下拉到底部,然后页面会刷出新的内容,每次会加载10 ...

  5. Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐

    一.前言 前文说过我的设计师小伙伴的设计需求,他想做一个披头士乐队历年专辑的瀑布图. 通过搜索,发现网易云音乐上有比较全的历年专辑信息加配图,图片质量还可以,虽然有大有小. 我的例子怎么都是爬取图片? ...

  6. Python爬虫小白入门(二)requests库

    一.前言 为什么要先说Requests库呢,因为这是个功能很强大的网络请求库,可以实现跟浏览器一样发送各种HTTP请求来获取网站的数据.网络上的模块.库.包指的都是同一种东西,所以后文中可能会在不同地 ...

  7. Python爬虫小白入门(七)爬取豆瓣音乐top250

      抓取目标: 豆瓣音乐top250的歌名.作者(专辑).评分和歌曲链接 使用工具: requests + lxml + xpath. 我认为这种工具组合是最适合初学者的,requests比pytho ...

  8. python爬虫-基础入门-python爬虫突破封锁

    python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...

  9. python爬虫-基础入门-爬取整个网站《3》

    python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...

随机推荐

  1. 23种设计模式--中介者模式-Mediator Pattern

    一.中介者模式的介绍     中介者模式第一下想到的就是中介,房子中介,婚姻中介啊等等,当然笔者也希望来个婚姻中介给我介绍一个哈哈哈,,回归正题中介者模式分成中介者类和用户类,根据接口编程的方式我们再 ...

  2. UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)

    最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步. 在上章[UWP开发之Template10实践:本地文件与照相机文件操作的MVV ...

  3. Unity3D 5.3 新版AssetBundle使用方案及策略

    1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代. 因此,本文的主要 ...

  4. spring boot 部署为jar

    前言 一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目.想来放到prod上面也应该很简单.然而今天试了下,各种问 ...

  5. GOF23设计模式归类

    创建型模式:-单例模式.工厂模式.抽象工厂模式.建造者模式.原型模式结构型模式:-适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式行为型模式:-模板方法模式.命令模式.迭代器模式 ...

  6. WEB安全隐患

    org.apache.commons.lang.StringEscapeUtils 进行输入框内容处理 [StringEscapeUtils.escapeSql(str);StringEscapeUt ...

  7. Web安全开发之验证码设计不当引发的撞库问题

    感谢某电商平台安全工程师feiyu跟我一起讨论这个漏洞的修复.以往在安全测试的过程中后台经常存在验证码不失效果造成的撞库问题,甚至在一些银行或者电商的登录与查存页面同样存在这个问题,一旦造成撞库无论对 ...

  8. asp.net core 负载均衡集群搭建(centos7+nginx+supervisor+kestrel)

    概述 本文目的是搭建三台asp.net core 集群, 并配上 nginx做负载均衡   首先准备要运行的源码 http://pan.baidu.com/s/1c20x0bA 准备三台服务器(或则虚 ...

  9. 企业shell面试题:获取51CTO博客列表倒序排序考试题

    #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin HTMLFILE=/home/oldboy/ht ...

  10. 数据库备份并分离日志表(按月)sh 脚本

    #!/bin/sh year=`date +%Y` month=`date +%m` day=`date +%d` hour=`date +%H` dir="/data/dbbackup/f ...