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 爬虫基础---常用第三方库 ...
随机推荐
- HTML5调用百度地图API获取当前位置并直接导航目的地的方法
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8&quo ...
- 【题解】[HNOI2008]神奇的国度—BZOJ1006。
之前说顺着打BZOJ结果又被自己给鸽了qwq. ------------------------------------ 言归正传这道题应该怎么做. 先给大家普及一下弦图(连接环上俩个不相邻节点的边称 ...
- MetaMask/zero-client
https://github.com/MetaMask/zero-client MetaMask ZeroClient and backing iframe service architecture ...
- ps工具快捷键
1.覆盖图片原先文件--- 自由转换 快捷键 ctrl+t 1)首先选择一个背景色 点击或者ctrl+t 处于自由切换状态 可以进行上下拉伸 回车即可. 这样就覆盖了文件,且背景色和我们之前的一样. ...
- web.py利用模板的详细步骤
<python网络编程学习笔记(10):webpy框架>(http://www.cnblogs.com/xiaowuyi/archive/2012/11/15/2771099.html#3 ...
- TortoiseSVN 只取下或更新部分文件的方法(Sparse Update/Sparse Checkout)
Sparse Update/Sparse Checkout To easily select only the items you want for the checkout and force ...
- python_基础硬件知识
通过学习这一篇章的内容,回顾了<数字逻辑><计算机组成原理><操作系统> 这几门课的相关知识 有时候,总是要了解一些基本,才能更容易理解程序 以下是我的一些听课记录 ...
- linux下安装redis安装使用
1.下载redis 下载地址:http://redis.io/download,下载最新稳定版本 2.解压redis 1) cd redis-x.x.x 2) make 3.启动redis 1) c ...
- python 回溯法 子集树模板 系列 —— 13、最佳作业调度问题
问题 给定 n 个作业,每一个作业都有两项子任务需要分别在两台机器上完成.每一个作业必须先由机器1 处理,然后由机器2处理. 试设计一个算法找出完成这n个任务的最佳调度,使其机器2完成各作业时间之和达 ...
- idea 中全局查找不到文件 (两shift),单页搜索不到关键字的原因
全局查找不到文件是因为把要找的目录的本级或者上级设置为了额外的,所以自然找不到 而单页搜索不到内容是因为设置了words关键字,这个要全部都输入完才能找到(也就是整个关键字进行匹配,匹配到了整体才会查 ...