python 学习之FAQ:find 与 find_all 使用
FAQ记录
1. 错误源码
错误源码如下
def fillUnivList(_html,_ulist):
soup =BeautifulSoup(_html,'html.parser')
for tr in soup.find_all('tbody').children:
if isinstance(tr,bs4.element.Tag):
tds = tr.find_all('td')
_ulist.append((tds[].string,tds[].string,tds[].string))
2. 报错显示
运行报错显示
File"printUnivLst.py", line ,in getUnivList
for tr in soup.find_all('tbody').children:#注意find与find_all不同使用场景
AttributeError:'ResultSet' object has no attribute 'children'
3. 报错分析
报错内容AttributeError: 'ResultSet' object has no attribute 'children'意思为属性错误:结果集对象每一属性可以调用。
分析错误源码既可以知道soup对象的方法find_all()返回的是一个结果集列表,而结果集列表是一组数据,其是没有属性的,只有单个数据对象才有属性可言。
故,原错误源码中,对于tbody标签的子标签内容进行查找时,应该使用find().children,而soup.find()返回的结果一个字符串对象,其可以存在属性的调用。
4. 修改的代码
# 大学排名数据提取,并存入列表
def getUnivList(_html,_Univlst):
soup =BeautifulSoup(_html,'html.parser')
for tr in soup.find('tbody').children:#注意find 与find_all不同使用场景
if isinstance(tr,bs4.element.Tag):
tds = tr.find_all('td')
_Univlst.append((tds[].string,tds[].string,tds[].string))
python 学习之FAQ:find 与 find_all 使用的更多相关文章
- python 学习之FAQ:文档内容写入报错
2017.3.29 FAQ 1. 文档内容写入报错 使用with open() as file: 写入文档时,出现'\xa9'特殊字符写入报错,通过print('\xa9')打印输出“©”. > ...
- Python学习推荐
1. Python官网 官网想必是最权威的,不仅有Python 2.X和3.X的软件包,还有官方文档Python tutorial (official docs)及社区. 2. 在线阅读免 ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python 学习小结
python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...
- Python学习路径及练手项目合集
Python学习路径及练手项目合集 https://zhuanlan.zhihu.com/p/23561159
- python学习笔记-python程序运行
小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
随机推荐
- jquery提供的数据提交方式2-ajax
以前介绍过ajax提交方式.但仅仅是个例子,今天将详细介绍jquery中的$.ajax,$.get,$.post方法. 一,首先介绍$.ajax方法参数(以下参数来自:http://www.cnblo ...
- 消息队列--RabbitMQ(一)
1.消息队列概述 可以理解为保存消息的一个媒介/或者是个容器,与之相关有两个概念(即生产者(Publish)与消费者(Consumer)).所谓生产者,就是生产创造消息的一方,那么,消费者便是从队列中 ...
- Web调试利器fiddler介绍
转载:http://blog.chinaunix.net/uid-27105712-id-3738821.html 最近在使用fiddler,发现这个真是非常最犀利的web调试工具,笔者这里强烈推荐给 ...
- vue -- 异常处理集合
1.npm run dev 运行出错,报错如下: > webpack-dev-server --inline --progress --config build/webpack.dev.conf ...
- matplotlib.pyplot import报错: ValueError: _getfullpathname: embedded null character in path
Environment: Windows 10, Anaconda 3.6 matplotlib 2.0 import matplotlib.pyplot 报错: ValueError: _getfu ...
- 暴风魔镜SDK:MojingSDK For Unity V1.3.5112 (R).zip
去年买了个暴风魔镜4,如今一直放在家里吃灰,这些天对Unity3D开发VR兴趣正浓,刚好公司项目不忙,花了几天玩玩暴风魔镜SDK,因为网上的资料不算多,暴风提供的文档也不太适合像我这样的Unity小白 ...
- CSS十一问——好奇心+刨根问底=CSSer
最近有时间,想把酝酿的几篇博客都写出来,今天前端小学生带着10个问题,跟大家分享一下学习CSS的一些体会,我觉得想学好CSS,必须保持一颗好奇心和刨根问底的劲头,而不是复制粘贴,得过且过.本人能力有限 ...
- 1104 Sum of Number Segments(20 分)
Given a sequence of positive numbers, a segment is defined to be a consecutive subsequence. For exam ...
- Django与Ajax,文件上传,ajax发送json数据,基于Ajax的文件上传,SweetAlert插件
一.Django与Ajax AJAX准备知识:JSON 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻 ...
- Java定时任务的几种实现方式
java Timer比较具体的实现实例 https://www.cnblogs.com/0201zcr/p/4703061.html 转载大神 的 https://blog.csdn.net/kegu ...