创建爬虫----复杂HTML解析

来源:互联网 发布:删除数据表的sql语句 编辑:程序博客网 时间:2024/05/21 10:48

BeautifulSoup的find()和findAll()

可通过标签的不同属性轻松的过滤HTML页面,查找需要的标签组或单个标签

#findAll(tag,attributes,recursive,text,limit,keywords)#find(tag,attributes,recursive,text,keywords)#爬取大众点评的一页信息from urllib.request import urlopenfrom bs4 import BeautifulSouphtml=urlopen("http://www.dianping.com/shop/2484325/review_more_5star?pageno=1")bsObj=BeautifulSoup(html)nameList=bsObj.findAll("div",{"class":"J_brief-cont"})for name in nameList:     print(name.get_text())

运行结果如下

#相关小知识#1.递归参数recursive是一个布尔变量,recursive=true,会查找标签参数的所有子标签,以及子标签的子标签。recursive=false,只查找文档的一级标签。 2.nameList=bsObj.findAll(text="the prince") print(len(namelist))#查找网页包含"the prince"内容的标签数量; 3.find等价于findall的limit=1的情形 4.关键参数keyword,选择那些具有指定属性的标签。 eg.  allText=bsObj.findAll(id="text")       print(allText[0].get_text())       等价于:allText=bsObj.findAll("",{"id":"text"})allText=bsObj.findAll(class_="green")等价于:allText=bsObj.findAll("",{"class":"green"})
原创粉丝点击