BeautifulSoup 是做 HTML 解析用的,功能非常强大,比我之前见识过的 JAVA 以及Python 版本的 HTML Parser 要强大很多。 最喜欢 BeautifulSoup 的 DOM 选择器,很有 JQuery 的味道, 喜欢 JQuery 的开发人员应该会马上喜欢上他。
下面只是我个人做的一些学习笔记,当作手册来查阅的。
1. titleTag = soup.html.head.title
2. len(soup('p')) 多少个 p.
3. soup.findAll('p', align="center")
4. print soup.prettify()
5. navigate soup的一些方法:
soup.contents[0].name
soup.contents[0].contents[0].name
head = soup.contents[0].contents[0]
head.next
head.nextSibling.name
head.nextSibling.contents[0]
6. titleTag = soup.html.head.title
# <title>Page title</title>
titleTag.string: 返回 <title></title> 之间的内容.
7. <p id="firstpara" align="center">This is paragraph <b>one</b>. </p>
soup('p', align="center")[0]['id'] (# u'firstpara')
soup.find('p', align=re.compile('^b.*'))['id']
8. 修改 soup
titleTag['id'] = 'theTitle'
titleTag.contents[0].replaceWith("New title")
soup.p.replaceWith(soup.b)
soup.body.insert(0, "This page used to have ")
soup.body.insert(2, " <p> tags!")
9. 循环:
for incident in soup('td', width="90%"):
10. BeautifulStoneSoup的一个主要缺点就是它不知道如何处理自结束标签.
11. prettify 方法添加了一些换行和空格以便让文档结构看起来更清晰.
str和unicode函数不会剔除这些节点,他们也不会添加任何空白符。
12. heading = soup.h1
str(heading) // 输出结果: # '<h1>Heading</h1>'
heading.renderContents() // 输出结果: # 'Heading'
13. firstPTag, secondPTag = soup.findAll('p')
firstPTag['id'] // 输出结果: # u'firstPara'
secondPTag['id'] // 输出结果: # u'secondPara'
14. soup.p跳到文档中的第一个 <P> tag。
soup.table.tr.td 跳到文档总第一个table的第一列第一行。
获得第一个<FOO> 标签另一种方式是使用.fooTag 而不是 .foo。
例如,soup.table.tr.td可以表示为soup.tableTag.trTag.tdTag
15. findAll和 find 仅对Tag对象以及顶层剖析对象有效,但 NavigableString不可用。
16. The basic find method: findAll(name, attrs, recursive, text, limit, **kwargs)
17. 查找所有的<TITLE>和<P>标签:
(1). soup.findAll(['title', 'p'])
(2). soup.findAll({'title' : True, 'p' : True}) (更快一些)
18. 传一个True值,这样可以匹配每个tag的name:也就是匹配每个tag。
allTags = soup.findAll(True)
[tag.name for tag in allTags]
[u'html', u'head', u'title', u'body', u'p', u'b', u'p', u'b']
19. 查找两个并仅两个属性的标签(tags):
soup.findAll(lambda tag: len(tag.attrs) == 2)
寻找单个字符为标签名并且没有属性的标签:
soup.findAll(lambda tag: len(tag.name) == 1 and not tag.attrs)
20. keyword参数用于筛选tag的属性。下面这个例子是查找拥有属性align且值为 center的所有标签:
soup.findAll(align="center")
soup.findAll(id=re.compile("para$"))
soup.findAll(align=["center", "blah"])
soup.findAll(align=lambda(value): value and len(value) < 5)
特殊值: soup.findAll(align=True)
[tag.name for tag in soup.findAll(align=None)]
soup.findAll(attrs={'id' : re.compile("para$")})
21. 使用CSS类查找:
soup.find("tagName", { "class" : "cssClass" })
soup.findAll(text="one")
soup.findAll(text=u'one')
soup.findAll(text=["one", "two"])
soup.findAll(text=re.compile("paragraph"))
soup.findAll(text=lambda(x): len(x) < 12)
22. limit 参数:
soup.findAll('p', limit=1)
23. find方法类似findAll的函数,但只返回第一个可匹配对象。
24. findNextSiblings(name, attrs, text, limit, **kwargs):
findPreviousSiblings(name, attrs, text, limit, **kwargs)
findAllNext(name, attrs, text, limit, **kwargs)
findAllPrevious(name, attrs, text, limit, **kwargs)
findParents(name, attrs, limit, **kwargs)
25. subtree = soup.a
subtree.extract()
26. soup.find(text="Argh!").replaceWith("Hooray!")
分享到:
相关推荐
本文仅为学习笔记,作用仅为方便自己查阅复习使用,具体学习路线参考 Beautiful Souo 4.2.0文档 文章目录TagnameAttributestag属性的删除tag属性的修改多值属性tag中的字符串注释及特殊字符串 Tag tag中两个最重要的...
在Python的世界里,网络爬虫是一项非常实用的技术,它能够帮助我们自动地获取网页上的信息。本教程将详细介绍如何利用Python的...学习网络爬虫不仅可以提升编程技能,还能帮助我们更好地理解和利用互联网上的大量信息。
- Beautiful Soup 4.2.0 文档 - 对象的种类 - Tag 标签 - Name Tag的名字 - Attributes 操作类似于字典 比如id,class_ - 多值属性 - 可以遍历的字符串 1.字符串常被包含在tag内.Beautiful Soup用 ...
近日实际学习和使用爬虫的python工具BeautifulSoup的精选资料包,全部是整理的.md笔记档,目录结构清晰,特分享以供爬虫学习、使用者速学速查之便,共有三份文档: Beautiful Soup 4.4.0 文档,最新的文档,作参考...
– 获取到网页数据后,我们发现我们想...Beautiful Soup库的安装(Beautiful Soup库是解析、遍历、维护“标签树”的功能库): 按WIN键+R键打开运行,输入cmd后回车进入命令提示符 pip install beautifulsoup4 然而,
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
学习使用的书籍是Python网络数据采集(Ryan Mitchell著),大约是一些笔记的整理。 Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下: Beautiful Soup...
2、Beautiful Soup 模块使用Python编写,速度慢。 安装: pip install beautifulsoup4 3、 Lxml 模块使用C语言编写,即快速又健壮,通常应该是最好的选择。 (二) Lxml安装 pip install lxml 如果使用lxml的css...
自己的python爬虫学习笔记,这是一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者。读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫。 这篇 Python 爬虫...
【描述】提到"这是Daddy Awesome的第一个项目",意味着这是一个初学者的项目,可能由一位名叫"Daddy Awesome"的人创建,旨在通过实际操作来学习和掌握Beautiful Soup和Git。项目中计划使用Beautiful Soup,这是一个...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
2、用beautiful soup4解析缓存下来的data 3、加载pandas库,将data导出至csv文件 import time from selenium import webdriver driver=webdriver.Chrome(executable_path="C:\Program Files\Anaconda3\chromedriver....
记录python爬虫学习全程笔记、参考资料和常见错误,约40个爬取实例与思路解析,涵盖urllib、requests、bs4、jsonpath、re、 pytesseract、PIL等常用库的使用。 爬虫(Web Crawler)是一种自动化程序,用于从互联网...
常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用...
2. **网页爬虫项目**:利用 Python 的 Beautiful Soup 或 Scrapy 库抓取并处理网页数据,了解网络数据获取的基本方法。 3. **机器学习项目**:可能涵盖监督学习(如分类或回归)或无监督学习(如聚类)。可能会用到...