爬虫入门教程 —— 1

爬虫入门教程 -1

很想做一些爬虫的基础性的教程,来与大家共同分享我的一些小经验, 我将以我认为的方式为大家讲解网络爬虫,如果你没有编程基础,对网络爬虫有兴趣,开始可能稍微有一些小难度,不过我希望能给你带来一些帮助。对我来说同样也是相互学习。。

工具 : 1 大家需要在电脑上安装Python3.x版本  我们以Python3 为例子讲解。安装方式百度一下按照步骤做就可以,安                            装时候遇到的问题也可以百度的到,你遇到的这些问题小白都遇到过,特别的正常

2 关于IDE(集成开发环境)的选择 我建议大家使用pycham   至于什么是IDE。就是我们写代码的地方,它提供了  代码高                   亮,代码报错,代码的搜索等等非常方便的功能。

3  我用的操作系统是liunx ,大家可以使用windows

4  你可能用的是IE浏览器 ,看到这里我希望你能安装chrome 或者火狐浏览器

本套教程主要用的编程语言是Python

第一节 认识网络爬虫

本节我主要是带领大家了解认识网络爬虫

什么是网络爬虫?

网络爬虫

除了百度百科所讲,通俗来讲,我平时浏览的页面大都是HTML页面,包括我们平时浏览的新闻,门户网站等都是将文字内容镶嵌在HTML代码中的,比如腾讯新闻的这篇文章:

爬虫要做的可以简单理解为利 用程序来获取我们需要的网络上的内容,包括文字,视频,图片等信息 称之为   数据。

你可能会说 真low 老子分分钟复制粘贴好几篇,辣鸡---##---。您说的有道理但是,你想如果是10w篇呢,甚至100w呢,你还分分钟复制粘贴吗,程序可以做到将这写数据下载下来或者是保存到数据库中这些---------

为什么要做网络爬虫?

数据  你感觉重要不重要?  '大数据时代',获取数据方式有哪些?

企业产生的数据百度搜索指数腾讯公司业绩数据阿里巴巴集团财务及运营数据新浪微博微指数等...

数据平台购买数据数据堂国云数据市场贵阳大数据交易所 等等

爬取网络数据:如果数据市场上没有需要的数据,或者价格太高不愿意购买,那么可以利用爬虫技术,抓取网站上的数据。

我们对于爬虫其实我们经常与它打交道,百度 谷歌,雅虎,等就是大爬虫, 他们有个响当当的名字------搜索引擎

搜索引擎可以说是爬虫的至高境界---  你修炼到这个境界今年是不可能了,当然明年也不肯可能。

你可能要问了,那百度为什么搜索的时候搜不到数据,都是官网,打开才可以进去,像搜索引擎不会像个人写的爬虫程序一样无脑,因为他们要遵循一个 协议: 如标注为nofollow的链接,或者是Robots协议。

这些协议注明了那些页面是爬虫可以访问的,哪些是不可以访问的。如:

淘宝网:https://www.taobao.com/robots.txt

腾讯网: http://www.qq.com/robots.txt

搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。

搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。

别激动 我们做的是小爬虫,也称聚焦爬虫,即你想爬哪些数据,找到网址,分析规则然后写程序取抓取数据,当然不同网站的难易程度是不一样的。

首先你要知道 当你点击一下百度,发生了什么,能把你想要的数据返回到你的电脑屏幕上

简单来说这段过程发生了以下四个步骤:

  1. 浏览器通过 DNS服务器 查找域名对应的 IP地址;

  2. 向 IP地址 对应的 Web服务器 发送请求;

  3. Web服务器 响应请求,发回 HTML页面;

  4. 浏览器解析 HTML内容,并显示出来。

HTTP和HTTPS

HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法。

HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层。

SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全。

  • HTTP的端口号为80
  • HTTPS的端口号为443

HTTP工作原理

网络爬虫抓取过程可以理解为模拟浏览器操作的过程

浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示您选择的网络资源,HTTP是一套计算机通过网络进行通信的规则

浏览器发送HTTP请求的过程:

  1. 当用户在浏览器的地址栏中输入一个URL地址并按回车键之后,浏览器会向HTTP服务器发送HTTP请求。  HTTP请求主要分为 Get 和 Post 两种方法。

  2. 当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。

  3. 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件等。

  4. 当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。

        URL(Uniform / Universal Resource Locator的缩写):统一资源定位符,是用于完整地描述Internet上

HTTP请求主要分为GetPost两类:

  • GET是从服务器上获取指定页面信息,POST是向服务器提交数据并获取页面信息。

  • GET请求参数都显示在URL上,服务器根据该请求所包含URL中的参数来产生响应内容。 'Get' 请求的参数 是URL的一部分。

  • POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,通常用来向HTTP服务器提交量比较大的数据(比如请求中包含许多参数或者文件上传操作等)。 'POST'请求的参数 不在URL中,而在请求体中。

get请求的参数都在网址里面包含,所以我们有时候看到一个网址特别长,后边带了一坨东西。post请求一般是用于表单提交,将账号密码以post的方式发送。

当你任意点开客户端与服务期的一次信息交互,你会看到它访问客户端携带的参数也就是头部信息:request headers (常用) 以及客户端的回应response headers

前边说过了,我们鼠标每点击一次,就是对服务器发送了一次请求,等待服务器给你响应

当我们打开一个网页,右键点击选择查看源代码是可以查看源代码的,点击审查元素 和检查元素,就可以对客户端与服务器之间的信息交流进行查看如图:

第一个箭头指向的位置  —点击一下,然后点击文章相应位置,它会指向代码中内容的位置,可以帮助我们查看数据在网页中的结构和位置

第二给箭头是网络  — 点击network ,重新刷新页面,你会看到客户端和服务器之间的数据来往,也是我们今后用的最多的

第三个箭头 是   —all是所有的数据来往,xhr一般ajax加载的数据会在这里面找到,js是js的一些请求,里面也有我们要的数据,少数

下边方框里面  分别是 name  status(状态码)  type  size  等     了解一下即可,状态  200是正常,其他异常状态码可以百度,size点击可以按大小排列 这个后边还是挺方便的

其他的我们后边在做详细的讲解,大家可以先找个网页尝试一下。(其中有不明白的 可以自行百度)

第一节课程到这里也就结束了 ,今天先带大家认识爬虫,做一个简单的了解,明天开始我们开始下一章了,对于Python基础不了解的同学,可以看廖雪峰老师的讲解   百度 廖雪峰Python

在这套教程中我们将逐步共同学习:

1. Python基础语法学习(基础知识)    #  这个我们暂时不讲

2. 对HTML页面的内容抓取(Crawl)

3. 对HTML页面的数据解析(Parse)

4. 动态HTML的处理/验证码的处理

5. Scrapy框架

(0)

相关推荐

  • 《python接口自动化测试》新书已上架-YOYO出品

    期待已久的<python接口自动化测试>终于上架了,本书满满的干货 从最基础的抓包开始讲(手把手的教程,小白也能入门),接着是最强大,最符合人类设计的requests框架做接口测试,结合p ...

  • 巨细!Python爬虫详解

    来源:Python 技术「ID: pythonall」 爬虫(又称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者):它是一种按照一定的规则,自动地抓取网络信息的程序或者脚本. ...

  • 【2020Python修炼记】前端开发之 前端基础和HTML入门

    [目录] 一.前端开发工具简介 二.前端基础 1.什么是前端 2.前端学习历程 3.HTTP协议 三.HTML 1.HTML简介 2.HTML文档结构 3.HTML标签分类(一) 4.HTML标签分类 ...

  • Python爬虫入门教程(十四):爬取有声小说网站数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...

  • Python爬虫入门教程:豆瓣Top电影爬取

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理.   基本开发环境 Python 3.6 Pycharm 相关模块的使用 requests p ...

  • Python爬虫入门教程02:笔趣阁小说爬取

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 前文 01.python爬虫入门教程01:豆瓣Top电影爬取 基本开发环境 Python 3 ...

  • Python爬虫入门教程01:豆瓣Top电影爬取

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  • Python爬虫入门教程!手把手教会你爬取网页数据

    什么是爬虫? 爬虫就是自动获取网页内容的程序,例如搜索引擎,Google,Baidu 等,每天都运行着庞大的爬虫系统,从全世界的网站中爬虫数据,供用户检索时使用. 爬虫流程 其实把网络爬虫抽象开来看, ...

  • 爬虫入门教程 —— 3

    常用的数据提取工具: 1  xpath   2  BeautifulSoup  3 正则表达式   . 当然了 还有一些 像jsonpath,pyquery等 为什么要用这些解析工具? 怎么使用?(下 ...

  • 爬虫入门教程 —— 2

    requests Request 自称是 HTTP for Humans  ,非常的方便. Request 其实底层就是封装的urllib3,它的文档非常的完备,完全可以支持现在的网络需要,可以在py ...

  • Python爬虫入门教程:超级简单的Python爬虫教程

    这是一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者.读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫. 这篇 Python 爬虫 ...

  • 易车网实战 【保姆级】:Feapder爬虫框架入门教程

    大家好,我是辰哥! 今天辰哥带大家来看看一个爬虫框架:Feapder,看完本文之后,别再说你不会Feapder了.本文辰哥将带你了解什么是Feapder?.如何去创建一个Feapder入门项目(实战: ...