不使用str.text.strip()获取beautifulsoup的文本

时间:2015-06-19 21:52:57

标签: python python-2.7 beautifulsoup

我想使用漂亮的汤从标签中获取文本,我在我的计算机上运行代码(运行mac OSX Yosemite)并且它正常工作但是当我在Linux服务器上运行此代码(运行Ubuntu 10.4)时,我得到了这个错误:

  

mtemp = div_tag.text.strip()

     

AttributeError:'NoneType'对象没有属性'text'

代码是:

    div_tag = soup.find('div', class_='span12 path_item')

    mtemp = div_tag.text.strip()
    print mtemp

我需要从该标记中获取文本,但我不知道为什么代码不能在服务器上运行,我必须找到一种方法从标记中获取纯文本而不使用 div_tag .text.strip() 如果它有帮助你可以看到div_tag内容(文本/我想从html代码获得什么)和div_tag它自己在这里:

         صفحهاصلی         مکانها         گردشگری         میراثفرهنگی         کاخموزهگلستان     
<div class="span12 path_item">
        <a href="/" style="margin-right: 5px;"><i class="fa fa-arrow-left"></i> صفحه اصلی</a>

        <a href="/list/show-places" id="PlaceHolderDivMainContent_MainContent_MainContent_hamgardiSiteView_NavigationBar_ASites" style="cursor:pointer"><i class="fa fa-angle-left"></i>مکان‌ها</a>

        <a href="/list/show-places/Category-Tourism" id="PlaceHolderDivMainContent_MainContent_MainContent_hamgardiSiteView_NavigationBar_ACategory" style="cursor:pointer"><i class="fa fa-angle-left"></i>گردشگری</a>
        <a href="/list/show-places/Category-Tourism/SubCategory-59" id="PlaceHolderDivMainContent_MainContent_MainContent_hamgardiSiteView_NavigationBar_ASubCategory" style="cursor:pointer"><i class="fa fa-angle-left"></i>میراث فرهنگی</a>
        <a id="PlaceHolderDivMainContent_MainContent_MainContent_hamgardiSiteView_NavigationBar_Title"><i class="fa fa-angle-left"></i>کاخ موزه گلستان</a>

    </div>

1 个答案:

答案 0 :(得分:3)

首先,您的选择器与您指定的 Set @qry = 'Select ...' EXEC(@qry) 属性无法正确匹配,因为有两个类已分配给class_

要使BeautifulSoup与多个类匹配,您需要使用CSS选择器。

此代码可以使用,但我不太喜欢它,如果有什么想法,我会改进它:

div