2014-11-16 93 views
0

我目前通過將bs4.contents鏈接到find_all('div')後成功地抓取了我需要的數據,但這似乎本質上是脆弱的。我想直接轉到我需要的標籤,但我的「class_ =」搜索返回NoneBS4按類別搜索返回空

我跑到下面的HTML,它返回None下面的代碼:

soup = BeautifulSoup(text) # this works fine 

tag = soup.find(class_ = "loan-section-content") # this returns None 

也試過soup.find('div', class_ = "loan-section-content") - 也返回None

我的HTML是:

<div class="loan-section"> 
    <div class="loan-section-title"> 
     <span class="text-light"> Some Text </span> 
</div> 
<div class="loan-section-content"> 
    <div class="row"> 
     <div class="col-sm-6"> 
      <strong>More text</strong> 
      <br/> 
      <strong> 
       <a href="https://www.google.com/maps/place/Dakar,+Senegal/" target="_blank">Dakar</a>,&nbsp;Senegal 
      </strong> 
+0

這是你使用的是完整的HTML? (至少,結尾缺少結束標籤) – alecxe

+0

無論如何,我試過所有的解析器 - 沒有問題,它返回所需的'div'。請顯示您目前的完整代碼。 「text」可能與您展示的內容有所不同。 – alecxe

+0

其工作正常,idk爲什麼它不適合你 – Hackaholic

回答

1

試試這個

soup.find(attrs={'class':'loan-section-content'}) 
or 
soup.find('div','loan-section-content') 

attrs將在屬性

搜索

演示: Demo

+0

這兩個工作都在BeautifulSoup 4.1.0中,當它還有其他類時,它也返回有問題的元素,例如。 '

'。在BeautifulSoup 4.2.1中,問題是固定的,'class_'的'find'工作正常。幸運的是,4.1.0解決方案繼續在4.2.1中工作。 – flaschbier