python soup findall_Python之BeautifulSoup常用详细使用
因工作需要,日常工作中有不少时间是用在了反复登陆内网。
故详细研究测试了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常用详细使用相关推荐
- python中soup_python中BeautifulSoup的详细介绍(附代码)
本篇文章给大家带来的内容是关于python中BeautifulSoup的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Beautiful Soup提供一些简单的. ...
- 【转载】关于Python Beautifulsoup的详细说明
Beautiful Soup 中文文档 原文 by Leonard Richardson (leonardr@segfault.org) 翻译 by Richie Yan (richieyan@gma ...
- Python语言学习:Python语言学习之正则表达式常用函数之re.search方法【输出仅一个匹配结果(内容+位置)】、re.findall方法【输出所有匹配结果(内容)】案例集合之详细攻略
Python语言学习:Python语言学习之正则表达式常用函数之re.search方法[输出仅一个匹配结果(内容+位置)].re.findall方法[输出所有匹配结果(内容)]案例集合之详细攻略 导读 ...
- python httpstr find_Python爬虫 | BeautifulSoup使用
BeautifulSoup介绍 与lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML数据. 几种解析工具的对比 工具 速度 难度 正则 ...
- python 爬虫 标签文本beautifullsoup_【Python爬虫】学习BeautifulSoup
Beautiful Soup 基本介绍Beautiful Soup 是一个HTML/XML 的解析器,主要用于解析和提取 HTML/XML 数据. 它是基于HTML DOM 的,会载入整个文档,解析整 ...
- Python用requests库+BeautifulSoup库+re库获取微博热搜(有详解)
Python用requests库+BeautifulSoup库+re库获取微博热搜 import requests from bs4 import BeautifulSoup import re de ...
- python excel库pip install_超全整理|Python 操作 Excel 库 xlwings 常用操作详解!
原标题:超全整理|Python 操作 Excel 库 xlwings 常用操作详解! 来源:早起Python 作者:陈熹.刘早起 大家好,我是早起. 在之前的文章中我们曾详细的讲解了如何使用openp ...
- 用Python解析HTML,BeautifulSoup使用简介
用Python解析HTML,BeautifulSoup使用简介 by cnDenis, http://cndenis.iteye.com, 2012年12月12日 Beautiful Soup,字面意 ...
- Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸
Python运用urllib2和BeautifulSoup爬取网站ZOL桌面壁纸上的精美电脑壁纸 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Ti ...
最新文章
- 数据库 事务的特性ACID
- php正则替换图片地址,求教 php正则把图片地址前部分替换
- nginx日志切割并使用flume-ng收集日志
- iOS中的图像处理(一)——基础滤镜
- 9.struts1.x中tiles框架的使用
- 还不知道这 11 个超酷的编程新工具你就 out 了!
- 关于5G被激烈讨论的那些争端和冲突
- (22)FPGA软核、固核、硬核介绍
- es6 对象中是否有键值_js/es6判断对象是否为空,并判断对象是否包含某个属性...
- 知行合一!如何做好项目经理?
- 基于虚拟帐号的邮件系统extmail(1)
- cojs 安科赛斯特 题解报告
- matlab2c使用c++实现matlab函数系列教程-harmmean函数
- iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
- 如何深入浅出地讲解麦克斯韦方程组
- hashcode()和equals()的区别
- linux环境Mechanize安装,在linux下安装activepython2.5 setuptools ClientCookie
- Java最准确的获取当前一周开始时间和结束时间
- java神雕侠侣1古墓情缘游戏攻略_《神雕侠侣》古墓派加点详解攻略
- iOS UIFont 字体名字大全
热门文章
- oracle克隆方式安装,克隆Oracle实现快速安装数据库软件
- 计算机网络c4比赛题目,计算机网络C4习题
- java 定时执行任务
- Spark 【数据挖掘平台介绍】 - Spark 1.1.0(看范式粒度)
- Spark排错与优化
- 第七章:在Spark集群上使用文件中的数据加载成为graph并进行操作(2)
- day32 java 多线程(3)了解篇
- Python统计TXT词云
- php varexport,PHP函数补完:var_export()
- java实现输出下一秒_编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一...