一、前言


爬虫Spider什么的,老早就听别人说过,感觉挺高大上的东西,爬网页,爬链接~~~dos黑屏的数据刷刷刷不断地往上冒,看着就爽,漂亮的校花照片,音乐网站的歌曲,笑话、段子应有尽有,全部都过来~~~

前段时间在学习Python打基础,一周时间过去了,是时候要开始写点东西了,Python爬虫刚好可验证下这段时间的学习成果,写写博文记录下自己学习爬虫的经过和遇到的坑,希望对同样是小白的园友有帮助!!!

我用的Python 3.5版本,2.7版本用的人也挺多的。

那么,接下来,我们要搞清楚几个问题:爬虫是什么东西?爬虫可以用来做什么?开发爬虫前需要掌握什么?

二、爬虫是什么东西


百度百科这么定义爬虫:

这里有几个关键词"规则","自动","万维网","程序"或者"脚本",理解了这几个关键词估计对爬虫就有个大体上的认识了。

接下来,会对这几个关键词就行解释.

三、爬虫从哪里爬取数据


浏览器输入QQ音乐首页的网址:https://y.qq.com/,展现在我们面前的是浏览器解析器后的样子,敲击F12后,我们可以看到网页的源码,都是由一些html标签(标签我们这里用"节点"表示吧)构成。

所有网页的源码结构主要长的是这个样子:

<html>

  <head>

    <title>title name</title>

  </head>

  <body>

    page content

  </body>

</html>

关键词"万维网"?最简单的理解,万维网就是千千万万台电脑相互连接形成的像蜘蛛网一样的东西,我们的爬虫就是在这张网上干活,从网页上爬取信息。

关键词"规则"?这就是爬虫需要遵守的规则,<html>节点是<head>和<body>的父节点,<head>和<body>是子节点, 父节点包含子节点,子节点相邻的节点是兄弟节点,<title>是<html>的子孙节点,

这就构成了HTML DOM(文档对象模型),简单地说,爬虫就是爬取这些节点的内容,例如图片,文本等。。

关键词"自动"和"程序"或者"脚本"?可以理解成非人工的方式,也就是编写代码的方式,通过程序或者一段脚本(我们这里用Python脚本),自动按着我们预设的意愿工作,爬取我们认为有价值的信息,满足我们对信息的需求。

四、我的爬虫知识储备


HTML + CSS + Javascript

掌握一些HTML静态网页的知识,CSS样式,ID,标签,类选择器,还有Javascript如何定位和操作页面上的元素,w3school的教程,有教程和实例,还可以用来调试代码脚本,新手入门和知识查阅十分方便。网页解析方面,后面我们会用到正则表达式、BeautifulSoup和Lxml三种方式。

HTTP协议

具备一些网络方面的知识,了解浏览器和服务器之间的交互,如何发送http请求和处理请求结果。网页请求和下载网页,后面我们会用到Python的库urllib

Python

我们的脚本语言,这个自然不用说,必须掌握,入门推荐 runoob.com,Python基础 和 Python 3

掌握了以上知识,我们就可以开始实战了!!!


Python爬虫基础之认识爬虫的更多相关文章

  1. python爬虫基础16-cookie在爬虫中的应用

    Cookie的Python爬虫应用 Cookie是什么 Cookie,有时也用其复数形式 Cookies,英文是饼干的意思.指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上 ...

  2. Python开发基础-Day15正则表达式爬虫应用,configparser模块和subprocess模块

    正则表达式爬虫应用(校花网) import requests import re import json #定义函数返回网页的字符串信息 def getPage_str(url): page_stri ...

  3. python基础整理6——爬虫基础知识点

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

  4. Python爬虫基础

    前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...

  5. Python爬虫入门:爬虫基础了解

    有粉丝私信我想让我出更基础一些的,我就把之前平台的copy下来了,可以粗略看一下,之后都会慢慢出. 1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫 ...

  6. python 3.x 爬虫基础---Urllib详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...

  7. python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...

  8. python从爬虫基础到爬取网络小说实例

    一.爬虫基础 1.1 requests类 1.1.1 request的7个方法 requests.request() 实例化一个对象,拥有以下方法 requests.get(url, *args) r ...

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

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

随机推荐

  1. Python Revisited Day 06 (面向对象程序设计)

    目录 6.1 面向对象方法 duck typing 访问限制 __ 6.2 自定义类 6.2.1 属性与方法 预定义的特殊方法 __...__ 一般的方法名起始和结尾不应该使用俩个下划线,除非是预定义 ...

  2. すぬけ君の塗り絵 / Snuke's Coloring AtCoder - 2068 (思维,排序,贡献)

    Problem Statement We have a grid with H rows and W columns. At first, all cells were painted white. ...

  3. Zookeeper连接eclipse

    package com.bw.ZK; import java.io.IOException; import org.apache.zookeeper.CreateMode; import org.ap ...

  4. Java 显示读取properties 乱码解决方案

    项目开发时,在配置springmvc 校验错误提示信息时,配置到properties的中文,在前端取出时,显示为乱码,可以确定properties 配置文件已经被设为UTF-8编码,在springmv ...

  5. python+opencv读取视频,调用摄像头

    引用 import cv2 import numpy 创建摄像头对象 cap = cv2.VideoCapture("videoTest/test1.mp4") #参数为视频文件目 ...

  6. Shell命令-文件及目录操作之cp、find

    文件及目录操作 - cp.find 1.cp:复制文件或目录 cp命令的功能说明 cp命令用于复制文件或目录. cp命令的语法格式 cp [OPTION]... SOURCE... DIRECTORY ...

  7. Python——接口类、抽象类

    建立一个接口类.抽象类的规范 from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): # 元类 默认的元类 t ...

  8. vue 点击当前元素添加class 去掉兄弟的class 获取当前点击元素的文字

    点击当前标签给其添加class,兄弟标签class删除 然后获取当前点击元素的文字 演示地址: https://xibushijie.github.io/static/addClass.html &l ...

  9. 基于JavaCv并发读取本地视频流并提取每帧32位dhash特征

    1.读取本地视频流,pom依赖 依赖于 org.bytedeco下的javacv/opencv/ffmpeg 包 <dependency> <groupId>org.byted ...

  10. 【转】 如何重写hashCode()和equals()方法

    转自:http://blog.csdn.net/neosmith/article/details/17068365 hashCode()和equals()方法可以说是Java完全面向对象的一大特色.它 ...