无法获取<;部门>;python中的标记值

无法获取<;部门>;python中的标记值,python,beautifulsoup,Python,Beautifulsoup,所需的值存在于div标签中: <div class="search-page-text"> <span class="upc grey-text sml">Cost for 2: </span> Rs. 350 </div> 但在输出中我得到“无”。您能帮我解决这个问题吗?可以通过以下方式访问包含子元素和字符串内容的元素: 问题在于,这包括span和div的强大内容。但是如果您知道div首先包含span和文本,您可以得到如下有趣的字符串 lis

所需的值存在于div标签中:

<div class="search-page-text">
<span class="upc grey-text sml">Cost for 2: </span>
Rs. 350 
</div>

但在输出中我得到“无”。您能帮我解决这个问题吗?

可以通过以下方式访问包含子元素和字符串内容的元素:

问题在于,这包括
span
div
的强大内容。但是如果您知道
div
首先包含
span
和文本,您可以得到如下有趣的字符串

list(soup.select("div.search-page-text")[0].stripped_strings)[1]

具有子元素和字符串内容的元素可以通过以下方式访问:

问题在于,这包括
span
div
的强大内容。但是如果您知道
div
首先包含
span
和文本,您可以得到如下有趣的字符串

list(soup.select("div.search-page-text")[0].stripped_strings)[1]

具有子元素和字符串内容的元素可以通过以下方式访问:

问题在于,这包括
span
div
的强大内容。但是如果您知道
div
首先包含
span
和文本,您可以得到如下有趣的字符串

list(soup.select("div.search-page-text")[0].stripped_strings)[1]

具有子元素和字符串内容的元素可以通过以下方式访问:

问题在于,这包括
span
div
的强大内容。但是如果您知道
div
首先包含
span
和文本,您可以得到如下有趣的字符串

list(soup.select("div.search-page-text")[0].stripped_strings)[1]

如果您知道您只需要作为
标记的直接文本的字符串,而不是
子元素,那么您可以这样做

from bs4 import BeautifulSoup

txt = '''<div class="search-page-text">
<span class="upc grey-text sml">Cost for 2: </span>
Rs. 350 
</div>'''

soup = BeautifulSoup(txt)

for div in soup.find_all("div", { "class" : "search-page-text" }):
    print ''.join(div.find_all(text=True, recursive=False)).strip()
    #print div.find_all(text=True, recursive=False)[1].strip()

如果您知道您只需要作为
标记的直接文本的字符串,而不是
子元素,那么您可以这样做

from bs4 import BeautifulSoup

txt = '''<div class="search-page-text">
<span class="upc grey-text sml">Cost for 2: </span>
Rs. 350 
</div>'''

soup = BeautifulSoup(txt)

for div in soup.find_all("div", { "class" : "search-page-text" }):
    print ''.join(div.find_all(text=True, recursive=False)).strip()
    #print div.find_all(text=True, recursive=False)[1].strip()

如果您知道您只需要作为
标记的直接文本的字符串,而不是
子元素,那么您可以这样做

from bs4 import BeautifulSoup

txt = '''<div class="search-page-text">
<span class="upc grey-text sml">Cost for 2: </span>
Rs. 350 
</div>'''

soup = BeautifulSoup(txt)

for div in soup.find_all("div", { "class" : "search-page-text" }):
    print ''.join(div.find_all(text=True, recursive=False)).strip()
    #print div.find_all(text=True, recursive=False)[1].strip()

如果您知道您只需要作为
标记的直接文本的字符串,而不是
子元素,那么您可以这样做

from bs4 import BeautifulSoup

txt = '''<div class="search-page-text">
<span class="upc grey-text sml">Cost for 2: </span>
Rs. 350 
</div>'''

soup = BeautifulSoup(txt)

for div in soup.find_all("div", { "class" : "search-page-text" }):
    print ''.join(div.find_all(text=True, recursive=False)).strip()
    #print div.find_all(text=True, recursive=False)[1].strip()


因为页面有其他带有“搜索页面文本”的div标记,所以我得到了不相关的值。有什么方法可以克服这个问题吗?可以利用span标记吗?我得到的只是2:value的成本,正如您所看到的,我正在使用索引
[0]
访问第一个
div.search-page-text
。如果有更多这样的元素,请使用不同的索引。因为页面有其他带有“search page text”的div标记,所以我得到的是不相关的值。有什么方法可以克服这个问题吗?可以利用span标记吗?我得到的只是2:value的成本,正如您所看到的,我正在使用索引
[0]
访问第一个
div.search-page-text
。如果有更多这样的元素,请使用不同的索引。因为页面有其他带有“search page text”的div标记,所以我得到的是不相关的值。有什么方法可以克服这个问题吗?可以利用span标记吗?我得到的只是2:value的成本,正如您所看到的,我正在使用索引
[0]
访问第一个
div.search-page-text
。如果有更多这样的元素,请使用不同的索引。因为页面有其他带有“search page text”的div标记,所以我得到的是不相关的值。有什么方法可以克服这个问题吗?可以利用span标记吗?我得到的只是2:value的成本,正如您所看到的,我正在使用索引
[0]
访问第一个
div.search-page-text
。如果有更多这样的元素,请使用其他索引。我在尝试运行代码时遇到以下错误:print(“”.join(div.find_all(text=True,recursive=False)).strip()^TabError:缩进中制表符和空格的使用不一致我检查了标识。看起来不错,因为我用空格,你用标签。您只需要将缩进行从4个空格更改为制表符。打印后,我在撇号处遇到无效语法错误。我在尝试运行代码时遇到以下错误:print(“”.join(div.find_all(text=True,recursive=False)).strip()^TabError:缩进中制表符和空格的使用不一致我检查了标识。看起来不错,因为我用空格,你用标签。您只需要将缩进行从4个空格更改为制表符。打印后,我在撇号处遇到无效语法错误。我在尝试运行代码时遇到以下错误:print(“”.join(div.find_all(text=True,recursive=False)).strip()^TabError:缩进中制表符和空格的使用不一致我检查了标识。看起来不错,因为我用空格,你用标签。您只需要将缩进行从4个空格更改为制表符。打印后,我在撇号处遇到无效语法错误。我在尝试运行代码时遇到以下错误:print(“”.join(div.find_all(text=True,recursive=False)).strip()^TabError:缩进中制表符和空格的使用不一致我检查了标识。看起来不错,因为我用空格,你用标签。您只需将缩进行从4个空格更改为制表符。打印后,我在符号处遇到无效语法错误