【发布时间】:2018-11-26 17:31:50
【问题描述】:
我正在编写网页抓取的代码,看起来beautifulsoup中的.findAll()函数只是查找类属性包含指定类名的标签。
例如,如果我写container = page_soup.findAll('div',{'class':'compare-collapse'}),container 将包含 div 标签,其类不仅是'compare-collapse',而且还有'compare-collapse compare-collapse_collapsed'。我只想找到类属性为 only 'compare-collapse' 的 div 标签。之前用过Beautifulsoup,没遇到过这个问题。
这是我的代码。我用许多容器编写代码以使其更易于调试。该错误发生在 container3。
html = driver.page_source
page_soup = soup(html,"html.parser")
container1=page_soup
container2=container1.findAll('div',{'id':'ratings'})
container2=container2[0]
container3=container2.findAll('div',{'class':'compare-collapse'}) #BUG HAPPENS HERE
container3=container3[1]
container4=container3.findAll('div',{'class':'compare-collapse_items'})
container4=container4[0]
container5=container4.findAll('div',{'class':'compare-section'})
container5=container5[0]
container6=container5.findAll('div',{'class':'container-fluid compare-row'})
container6=container6[2]
container7=container6.findAll('div',{'class':'row'})
container7=container7[0]
name=container7.div.div.text
print(name)
我之前将所有容器存储在一个文本文档中。 container3 的类是 compare-collapse compare-collapse_collapsed,而不是 compare-collapse。我该如何解决这个问题?
【问题讨论】:
标签: python html web-scraping beautifulsoup