zoukankan      html  css  js  c++  java
  • 网络爬虫(3)--Beautiful页面解析

            前面2节中对页面内容的访问都是直接通过标签访问的,这样虽然也可以达到解析页面内容的目的,但是在网页复杂,页面结构发生变化时,爬虫就失效了。为了使爬虫能够更加鲁棒的工作,我们需要学习通过属性查找标签的方法。
    • BeautifulSoup的find()和findAll()方法:
    findAll(tag, attribute, recursive, text, limit, keywords)
    find(tag, attribute, recursive, text, limit, keywords)
    tag: 需要查找元素的标签,可以是一个标签也可以是多个标签名组成的列表
    attribute: 要查找的标签属性,是用一个字典封装的标签的属性和对应的属性值
    recursive: 递归参数,bool类型。设置为True,findAll就会查找标签参数的所有子标签,否则只查找一级标签。默认为True。
    text: 文本参数,用标签的文本内容去匹配,而不是用标签的属性。
    limit: 范围限制参数,只用于findAll方法,表示获取前多少项结果。
    keywords: 关键词参数,选择具有指定属性的标签。
    • 四种BeautifulSoup对象:
    BeautifulSoup对象
    BeautifulSoup.tag对象
    NavigableString对象:
    用来表示标签里的文字,而不是标签。
    Comment对象:
    用来查找HTML文档的注释标签,<!--XXX-->
    • 导航树
    如果想要通过标签在文档中的位置来查找标签,则需要导航树。BeautifulSoup对象本身就是一个导航树,我们直接通过标签来访问。
    除此之外,我们还可以通过children来访问一个标签的子标签,descendants来访问后代标签,parent来访问父标签,next_siblings来访问兄弟标签,previpus_sibling来访问前一个兄弟标签等。





  • 相关阅读:
    ASP.NET上传文件的三种基本方法
    实例分析 equals 和 ==
    如何保证Web Service的安全
    Winform动态显示图片,数据流方式
    C# 文件保存到数据库中或者从数据库中读取文件
    简说Session
    NotifyIcon的简单使用
    c# Invoke和BeginInvoke 区别
    DataGridView 的 CurrentCellDirtyStateChanged事件用法
    十种发送邮件的方式
  • 原文地址:https://www.cnblogs.com/haoliuhust/p/5618080.html
Copyright © 2011-2022 走看看