BeautifulSoup获取指定class样式的div
Posted morein2008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BeautifulSoup获取指定class样式的div相关的知识,希望对你有一定的参考价值。
如何获取指定的标签的内容是解析网页爬取数据的必要手段,比如想获取<div class=‘xxx‘> ...<div>这样的div标签,按照BeautifulSoup官方文档的说明怎么都不能成功,后来在百度知道(http://zhidao.baidu.com/question/433247968620775644.html)找到答案,真是扯淡,附上有效代码:
bs=BeautifulSoup(html) print bs.find_all(name=‘div‘,attrs={"class":"footer"})#按照字典的形式给attrs参数赋值
完整的:
from bs4 import BeautifulSoup import urllib2def getTargetDiv(url,myAttrs): html=urllib2.urlopen(url).read() bs=BeautifulSoup(html) return bs.find_all(name=‘div‘,attrs=myAttrs) if __name__=="__main__": url=r‘http://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/‘ myAttrs={‘class‘:‘footer‘} print getTargetDiv(url, myAttrs)
按照官方文档(http://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/)的做法:
#1.soup.find_all("a", class_="sister") #2.css_soup.find_all("p", class_="body") #3.soup.find_all(href=re.compile("elsie"))
改成
bs.find_all(name=‘div‘,class_=re.compile(‘info_item‘)) 或者
bs.find_all(‘div‘,class_=‘info_item‘)
都没有匹配结果,经测试需要bs.find_all(name=‘div‘,attrs={"class":"footer"})这样以字典的形式给attrs参数赋值才可以。
以上是关于BeautifulSoup获取指定class样式的div的主要内容,如果未能解决你的问题,请参考以下文章
jquery怎么获取下一个具有指定样式(class)的元素呢?
Python beautifulsoup 获取标签中的值 怎么获取?
用bs4怎么获取指定class下面的a标签,例如class=img,下面有a href=,我想获取这个class下面的a标签href?