因工作需要,日常工作中有不少时间是用在了反复登陆内网。

故详细研究测试了BeautifulSoup的用法,总结下来备用爬网页之需。

首先是导入模块并初始化了:

from bs4 importBeautifulSoup

soup=BeautifulSoup(opener)

#1、tag标签法

如果一层层的标签包下去,只取每层标签第一个,或只有唯一一个时,可以用

soup.head.title

但并行多个同名标签的则不能title[2]之类查找

#2、contents法

根据文档树进行搜索,返回标记对象(tag)的列表,注意,直接.contents,返回的是列表,不是单一元素

使用contents向后遍历树,使用parent向前遍历树

共两种用法:

soup.contents

soup.contents[x].contents

返回值是包含html标签全部内容的列表。比如可能是三元素:[u'\n','xxxx',u'\n']

soup.contents[x]则是对列表各元素值的获取了

soup.contents[x].contents

返回值是目标标签的下一层(即为该标签为父,则抓取到的都是子的列表)全部标签的列表。这里如果x取错,可能会导致

错误,因为取错则生不成列表,后面contents会弹错。

1 soup.contents[1]=u'HTML'

2 soup.contents[2]=u'\n'

3 soup.contents[3]=...

soup.contents[3].contents=[u'\n',

...,u'\n',...,u'\n']

以此类推,soup.contents[3].contents[3]=肯定是上述列表中的第四个元素body。

#3、.next法

只能针对单一元素进行.next,或者说是对contents列表元素的挨个清点。

比如

soup.contents[1]=u'HTML'soup.contents[2]=u'\n'

则soup.contents[1].next等价于soup.contents[2]

#搜索法

find(name=None, attrs={}, recursive=True, text=None, **kwargs)

主要2个:.find('p'),.findAll('p')

find返回的是字符串值,而且是返回从头查找到的第一个tag对。但是如果这第一个tag对包括大量的内容,父等级很高,则同时其内部所包含的

此级标签也全部都find

findAll返回值是个列表,如果发现了一个同名标签内含多个同名标签,则内部的标签一并归于该父标签显示,列表其他元素也不再体现那些内含

的同名子标签。

比如:

soup.findAll(οnclick='document.location...')

soup.findAll(attrs={'style':r'outline:none;'}) #用来查找属性中有style='outline:none;的标签体。

#4、.attrs[x]获取属性值法

在上述各种方法找到唯一的标签体之后,可以通过对标签实施attrs,得到一个内部属性的列表。

在标签后面新增.attrs['id']等等即可取得该标签内部id的属性值

比如:

soup.contents[3]==soup.contents[3].attrs=={'abc':'god','href':'/'}

soup.contents[3].attrs[1]='/'

python soup findall_Python之BeautifulSoup常用详细使用相关推荐

  1. python中soup_python中BeautifulSoup的详细介绍(附代码)

    本篇文章给大家带来的内容是关于python中BeautifulSoup的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Beautiful Soup提供一些简单的. ...

  2. 【转载】关于Python Beautifulsoup的详细说明

    Beautiful Soup 中文文档 原文 by Leonard Richardson (leonardr@segfault.org) 翻译 by Richie Yan (richieyan@gma ...

  3. Python语言学习:Python语言学习之正则表达式常用函数之re.search方法【输出仅一个匹配结果(内容+位置)】、re.findall方法【输出所有匹配结果(内容)】案例集合之详细攻略

    Python语言学习:Python语言学习之正则表达式常用函数之re.search方法[输出仅一个匹配结果(内容+位置)].re.findall方法[输出所有匹配结果(内容)]案例集合之详细攻略 导读 ...

  4. python httpstr find_Python爬虫 | BeautifulSoup使用

    BeautifulSoup介绍 与lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML数据. 几种解析工具的对比 工具 速度 难度 正则 ...

  5. python 爬虫 标签文本beautifullsoup_【Python爬虫】学习BeautifulSoup

    Beautiful Soup 基本介绍Beautiful Soup 是一个HTML/XML 的解析器,主要用于解析和提取 HTML/XML 数据. 它是基于HTML DOM 的,会载入整个文档,解析整 ...

  6. Python用requests库+BeautifulSoup库+re库获取微博热搜(有详解)

    Python用requests库+BeautifulSoup库+re库获取微博热搜 import requests from bs4 import BeautifulSoup import re de ...

  7. python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!

    原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...

  8. 用Python解析HTML,BeautifulSoup使用简介

    用Python解析HTML,BeautifulSoup使用简介 by cnDenis, http://cndenis.iteye.com, 2012年12月12日 Beautiful Soup,字面意 ...

  9. Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸

    Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Ti ...

最新文章

  1. 数据库 事务的特性ACID
  2. php正则替换图片地址,求教 php正则把图片地址前部分替换
  3. nginx日志切割并使用flume-ng收集日志
  4. iOS中的图像处理(一)——基础滤镜
  5. 9.struts1.x中tiles框架的使用
  6. 还不知道这 11 个超酷的编程新工具你就 out 了!
  7. 关于5G被激烈讨论的那些争端和冲突
  8. (22)FPGA软核、固核、硬核介绍
  9. es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...
  10. 知行合一!如何做好项目经理?
  11. 基于虚拟帐号的邮件系统extmail(1)
  12. cojs 安科赛斯特 题解报告
  13. matlab2c使用c++实现matlab函数系列教程-harmmean函数
  14. iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
  15. 如何深入浅出地讲解麦克斯韦方程组
  16. hashcode()和equals()的区别
  17. linux环境Mechanize安装,在linux下安装activepython2.5 setuptools ClientCookie
  18. Java最准确的获取当前一周开始时间和结束时间
  19. java神雕侠侣1古墓情缘游戏攻略_《神雕侠侣》古墓派加点详解攻略
  20. iOS UIFont 字体名字大全

热门文章

  1. oracle克隆方式安装,克隆Oracle实现快速安装数据库软件
  2. 计算机网络c4比赛题目,计算机网络C4习题
  3. java 定时执行任务
  4. Spark 【数据挖掘平台介绍】 - Spark 1.1.0(看范式粒度)
  5. Spark排错与优化
  6. 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(2)
  7. day32 java 多线程(3)了解篇
  8. Python统计TXT词云
  9. php varexport,PHP函数补完:var_export()
  10. java实现输出下一秒_编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一...