博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

阅读OReilly.Web.Scraping.with.Python.2015.6笔记---BeautifulSoup---findAll

 

 

1..BeautifulSoup库的使用

BeautifulSoup通常用来分析爬虫抓取的Web文档。

其中findAll函数的使用情景:

链接:http://www.pythonscraping.com/pages/warandpeace.html 中内容如下:

 

文字部分有黑色,红色,和绿色的,其决定因素主要在于其中的:

 

“<span class=”red”>

“<span class=”green”>

实现功能:提取出这篇文章中的所有绿色文字。

代码如下:

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://www.pythonscraping.com/pages/warandpeace.html")
bsObj = BeautifulSoup(html,"lxml")
nameList = bsObj.findAll("span",{"class":"green"})
for name in nameList:
    print(name.get_text())

代码运行结果:

Anna
Pavlovna Scherer
Empress Marya
Fedorovna
Prince Vasili Kuragin
Anna Pavlovna
St. Petersburg
the prince
Anna Pavlovna
Anna Pavlovna
the prince
the prince
the prince
Prince Vasili
Anna Pavlovna
Anna Pavlovna
the prince
Wintzingerode
King of Prussia
le Vicomte de Mortemart
Montmorencys
Rohans
Abbe Morio
the Emperor
the prince
Prince Vasili
Dowager Empress Marya Fedorovna
the baron
Anna Pavlovna
the Empress
the Empress
Anna Pavlovna's
Her Majesty
Baron
Funke
The prince
Anna
Pavlovna
the Empress
The prince
Anatole
the prince
The prince
Anna
Pavlovna
Anna Pavlovna

结果分析:提取出了文中所有绿色文字的内容。

关于bsObj.findAll(tagName,tagAttributes)的调用

.findAll()最常用的参数为:tagName,tagAttributes

tagName指的是"h1","h2","h3"之类的标签

tagAttributes是一个字典类型的数据,指的是{"class":"green","class":"red"}之类的数据。