008 - 爬虫处理流程及网页解析

爬虫处理流程:

  1. 将互联网上的网页获取到本地
  • 对网页进行解析
    网页解析是从网页中分离出我们所需要的、有价值的信息,以及新的待爬取的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语言库
  1. 首先必须要导入 bs4 库,创建BeautifulSoup对象
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,'lxml')  #html为下载的网页,lxml为解析器
  1. 详细使用可以看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/,抓取原创笑话段子。

008 - 爬虫处理流程及网页解析_第1张图片

发现内容都在span标签中,如果写 find_all("span") 可以抓取到段子的内容,但是还包含了网页上其他span的内容。这时我们往上一级标签上看,

你可能感兴趣的:(008 - 爬虫处理流程及网页解析)