Python爬虫:学爬虫前得了解的事儿
这是关于Python的第14篇文章,主要介绍下爬虫的原理。
提到爬虫,我们就不得不说起网页,因为我们编写的爬虫实际上是针对网页进行设计的。解析网页和抓取这些数据是爬虫所做的事情。
对于大部分网页来讲,它的代码构成主要包括三种语言:HTML、CSS、JavaScript,我们在爬取数据的时候大部分是从HTML和CSS中爬取。
那么,接下来在学爬虫前我们得了解点下面这些事儿。
首先,需要了解客户端与服务器的交换机制。
我们每次在访问页面时,实际上都是在向服务器发起请求,我们称之为request;服务器接到请求后,会给我们一个回应,称为response;这两种行为结合起来,即HTTP协议。

也就是说,HTTP协议是我们的客户端(网页)与服务器会话的一种方式。
在向服务器请求时,request主要包含了8种方法,get、post、head、put、options、connect、trace和delete,我们大多数时候使用到get方法即可,后续在实战操作中会详细展开。
Response是服务器回应给我们的信息。当我们以request向服务器发出请求时,服务器会返回给我们所要的信息。
其次,认识网页的基本构成
一个网页主要由三个部分构成,头部(header)、主体内容(content)和底部(footer)。
我们可以随便打开一个网页,比如PMCAFF的精选页:http://www.pmcaff.com/site/selection,用Google浏览器打开,仔细观察,它是由顶部的导航栏、logo等构成header,中间的文章为content,下面的合作伙伴等构成footer。
然后,我们单击右键选择【检查】,可以看到该页面的源代码,仔细观察下,常用的标签至少包含下面这几个:
- <div>...</div> 分区
- <li>...</li> 列表
- <p>...</p> 段落
- <h1>...</h1> 标题
- <img src = " "> 图片
- <a href = " ">...</a> 链接
最后,在爬虫前,我们需要学会解析网页。
那么,关于如何去解析网页,我们需要学会使用beautifulsoap。
具体内容将在下一篇的实战中详细讲解,用request+beautifulsoap来爬取真实网页的数据。
操作环境:Python版本,3.6;PyCharm版本,2016.2;电脑:Mac
----- End -----
作者:杜王丹,微信公众号:杜王丹,互联网产品经理。

Python爬虫:学爬虫前得了解的事儿的更多相关文章
- 学爬虫,需要掌握哪些Python基础?
入手爬虫确实不要求你精通Python编程,但基础知识还是不能忽视的,那么我们需要哪些Python基础呢? 首先我们先来看看一个最简单的爬虫流程: 第一步要确定爬取页面的链接,由于我们通常爬取的内容 ...
- [Python]新手写爬虫全过程(转)
今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...
- 第14章 web前端开发小白学爬虫结束语
老猿学爬虫应该是2019年7月初开始的,到现在2个多月了,有段时间了,这部分一直是老猿期待能给大家带来收获的,因为老猿爬虫实战应用的场景与网上老猿已知的场景基本都不一样,是从复用网站登录会话信息来开发 ...
- 第十四章 web前端开发小白学爬虫
老猿从事IT开发快三十年了,接触互联网也很久了,但自己没有做过web前端开发,只知道与前端开发相关的一些基本概念,如B/S架构.html标签.js脚本.css样式.xml解析.cookies.http ...
- Selenium + PhantomJS + python 简单实现爬虫的功能
Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...
- dota玩家与英雄契合度的计算器,python语言scrapy爬虫的使用
首发:个人博客,更新&纠错&回复 演示地址在这里,代码在这里. 一个dota玩家与英雄契合度的计算器(查看效果),包括两部分代码: 1.python的scrapy爬虫,总体思路是pag ...
- Python实战:爬虫的基础
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕 ...
- python 3.x 爬虫基础---Urllib详解
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...
- python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...
随机推荐
- ERC 725 and ERC 735 的实现及关系
https://github.com/OriginProtocol/origin-playground 通过ERC 725 and ERC 735 的实现来说明它们到底是做什么的: 看了这个例子后才大 ...
- PAT B1050 螺旋矩阵 (25 分)
本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”.所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N:m ...
- 输入5个学生的信息(包括学号,姓名,英语成绩,计算机语言成绩和数据库成绩), 统计各学生的总分,然后将学生信息和统计结果存入test.txt文件中
题目分析: 1.首先想到的是数组存放数据,数组肯定是String类型. 2.String类型的数组,5行6列.要把从第0行第2列到第4行第4列的数据取出转换成数值型,再统计三科总分.最后把计算出的总分 ...
- C++ 之const的使用
在类中,有时候为了避免误操作而修改了一些人们不希望被修改的数据,此时就必须借助const关键字加以限定了.借助const关键字可以定义const类型的成员变量.成员函数.常对象以及对象的常引用. co ...
- sql 两表更新
UPDATE sale_origin_line set state='cancel' from sale_origin p,sale_origin_line q where p.id=q.or ...
- odoo返写数据
#确认按钮 反写回合同页面,当前页面反写数据: def action_split_order_ht(self,cr,uid,ids,context=None): assert len(ids)==1 ...
- 2PC AND 3PC
一.分布式数据一致性 在分布式系统中,为了保证数据的高可用,通常会将数据保留多个副本(replica),这些副本会放置在不同的物理的机器上. (1)什么是数据一致性 在数据有多份副本的情况下,如果网络 ...
- 20155232《网络对抗》Exp7 网络欺诈防范
20155232<网络对抗>Exp7 网络欺诈防范 一.实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网 ...
- # 2017-2018-2 20155319『网络对抗技术』Exp4:恶意代码分析
2017-2018-2 20155319『网络对抗技术』Exp4:恶意代码分析 实验目标与基础问题 ++1.实践目标++ 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析 ...
- 20155325 Exp9 Web安全基础
本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击 ...