爬虫处理流程:

将互联网上的网页获取到本地

对网页进行解析

网页解析是从网页中分离出我们所需要的、有价值的信息,以及新的待爬取的URL。

网页的解析的方法:

正则表达式(采用模糊匹配的方式,找出我们所需要内容)

BeautifulSoup(是一个可以从HTML或XML文件中提取数据的第三方Python库), BeautifulSoup可以采用Python自带的

html.parse

作为它的解析器,也可以采用

lxml

作为解析器。

lxml 是Python语言解析处得XML和HTML的库

XPath(XPath 是一门在 XML 文档中查找信息的语言,XPath 可用来在 XML 文档中对元素和属性进行遍历。)

对解析出来的数据进行处理。

一、使用BeautifulSoup

安装:

pip install beautifulsoup4

安装lxml:

pip install lxml

解析器

使用方法

优点

缺点

Python标准库

BeautifulSoup(markup, “html.parser”)

Python的内置标准库,执行速度适中,文档容错能力强

Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差

lxml HTML 解析器

BeautifulSoup(markup, “lxml”)

速度快,文档容错能力强

需要安装C语言库

首先必须要导入 bs4 库,创建BeautifulSoup对象

from bs4 import BeautifulSoupsoup = BeautifulSoup(html,'lxml') #html为下载的网页,lxml为解析器

详细使用可以看Beautiful Soup 4.2.0 文档

掌握以下三个方法基本够用:

find_all("tag") 搜索当前所有的tag标签的集合。

find("tag") 返回的是一个tag标签。(这个方法用得少)

select("") 可以按标签名查找,用得多的是按标签逐层查找筛选元素。

二、使用BeautifulSoup提取网页内容的一些技巧

1、find_all()方法中放单独的标签名,如

a

,会提取网页中所有的

a

标签,这里要确保是我们所需要的链接

a

,一般都不是,需要加上条件(就是标签的属性,加以限制筛选),如果这一级标签没有属性,最好往上一级找。

以糗事百科为例来说明,

http://www.qiushibaike.com/text/

,抓取原创笑话段子。

发现内容都在

span

标签中,如果写

find_all("span")

可以抓取到段子的内容,但是还包含了网页上其他

span

的内容。这时我们往上一级标签上看,

就是只包含了段子内容的标签。

取出来的link的内容就是

div

,我们取它的

span

中的内容就是我们需要段子的内容。

2、select() 方法,可以按标签逐层查找到我们所需要的内容,这点特点方便,就是定位,避免了单一的标签无法定位到我们所需要的内容元素。

注意,以上按路径 标签之间的空格 td div a,可以用>,但也要注意>与标签之间都有空格。推荐使用 > 的方式。

我们使用Chrome浏览器,右键copy - selector (鼠标要放在标签上)

注意得到的内容,是从

#

开始的,这是上面

div

id

#

表示的是

id

),如果按此去搜索标签内容,只能得到一条内容。

#qiushi_tag_118962045 > a > div > span

需要改一下,按照个标签顺序去匹配搜索内容。这里第一个

div

就是 有id数字的那个

div

div > a > div > span

按这个路径去搜索时,发现还匹配到评论的内容,这就是定位的问题,需要改得更准确一些。

a.contentHerf > div > span

改为从

a

标签开始,并且加上它的

class

属性。

a.contentHerf

在select()方法中的写法。

两种方式抓取到糗百的段子。注意这里只抓取了一页的内容

学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群

626062078,我们一起学Python!

python爬虫流程-Python:爬虫处理流程及网页解析相关推荐

  1. python网络爬虫笔记02:基于正则表达式的网页解析案例

    目录 1 正则表达式 1.1 基础语法 1.2 量词 1.3 贪婪匹配和惰性匹配 1.4 测试小例子

  2. python实验七 网络爬虫和文本处理

    目录 实验原理: 实验准备: 实验步骤与内容: 参考代码: 运行结果: 学习网络爬虫常用工具包 requests,以及对网页解析工具 BeautifulSoup 等操作: 依托自然语言处理领域的文本数 ...

  3. python爬虫流程-Python爬虫程序架构和运行流程原理解析

    1 前言 Python开发网络爬虫获取网页数据的基本流程为: 发起请求 通过URL向服务器发起request请求,请求可以包含额外的header信息. 获取响应内容 服务器正常响应,将会收到一个res ...

  4. python爬虫流程-Python爬虫流程

    Python爬虫流程 主要分为三个部分 (1)获取网页-------->(2)解析网页(获取数据)--------->存储数据 三个流程的技术实现 1.获取网页 -获取网页的技术基础:ur ...

  5. 学python爬虫需要什么基础-从零开始教你学爬虫!python爬虫的基本流程!

    世界那么大,谢谢你来看我!!! 网络爬虫是什么? 网络爬虫就是:请求网站并提取数据的自动化程序 网络爬虫能做什么? 网络爬虫被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内 ...

  6. python爬虫教程:爬虫的基本流程

    爬虫的基本流程 1.发起请求: 通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,然后等待服务器响应.这个请求的过程就像我们打开浏览器,在浏览器地址栏 ...

  7. python爬虫常用流程_爬虫采集基本流程,python爬虫框架排行榜

    爬虫其实是通过伪装数据,借用代理IP工具,并模仿用户行为实现采集信息,这爬虫采集基本流程是怎样的呢?爬虫的框架影响采集的效果,在编写爬虫之前,选择怎么样的爬虫框架好? 今天就跟智连代理小编去看看pyt ...

  8. 一篇文章教会你Python网络爬虫程序的基本执行流程

    网络爬虫是指在互联网上自动爬取网站内容信息的程序,也被称作网络蜘蛛或网络机器人.大型的爬虫程序被广泛应用于搜索引擎.数据挖掘等领域,个人用户或企业也可以利用爬虫收集对自身有价值的数据. 一个网络爬虫程 ...

  9. [Python爬虫] 二、爬虫原理之定义、分类、流程与编码格式

    往期内容提要: [Python爬虫] 一.爬虫原理之HTTP和HTTPS的请求与响应 一.爬虫的定义.分类和流程 爬虫定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求 ...

最新文章

  1. 解题报告(一)快速沃尔什变换FWT(ACM / OI)超高质量题解
  2. 经典算法面试题目-置矩阵行列元素为0(1.7)
  3. 苍狼敏捷需求用例分析方法简介并讲义下载
  4. PHP增加$_ENV变量
  5. 组合数学与数论函数专题
  6. 【微信插件】P3微信插件测试使用步骤
  7. 【干货】微信私域运营实战指南.pdf(附下载链接)
  8. Opencv求多边形或轮廓的凸包(Hull)
  9. 伪静态在webconfig中配置
  10. 【TensorFlow基础】加载和预处理数据
  11. matlab中的全局参量,matlab参数传递及全局变量 | 学步园
  12. wps文档怎么做链接
  13. Android 和 H5 交互-框架篇
  14. 操作系统--进程调度实验报告
  15. 天梯赛 L2-001 紧急救援 (25 分)
  16. Beyond Compare 3 中文版的安装注册及添加到右键菜单
  17. 高中计算机高效课堂和有效教学模式论文,高中班主任高效课堂教学模式的探究...
  18. 线程定义, 实现方式及代码实现.
  19. poi解决excel 03 与 07不兼容的问题
  20. 《巴菲特致股东的信(第4版)》笔记——消费行为

热门文章

  1. MongoDB C++ gridfs worked example
  2. 一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度...
  3. Qt creator自定义编译运行步骤
  4. zipkin+rabbitMQ+elasticsearch实现
  5. Java 8 实战 P4 Beyond Java 8
  6. 常见Java集合的实现细节
  7. 算法入门经典-第七章 例题7-2-2 可重集的排列
  8. python2.7.13环境搭建
  9. mysql Replication机制
  10. Html5 History API解析