Python Beautifulsoup-如何从<;span>';s

Python Beautifulsoup-如何从<;span>';s,python,beautifulsoup,Python,Beautifulsoup,我正试图搜刮一个网站。一切都很顺利,但我想在之间找到文本。我能找到第一个,但我不能找到下一个。 这是html摘录: <ul class="product-small-specs" data-test="product-specs"> <li> <span>Engels</span> </li> <li> <span>Hardcover</span> &l

我正试图搜刮一个网站。一切都很顺利,但我想在
之间找到文本。我能找到第一个,但我不能找到下一个。 这是html摘录:

<ul class="product-small-specs" data-test="product-specs">
    <li>
    <span>Engels</span>
    </li>
    <li>
    <span>Hardcover</span>
    </li>
    <li>
    <span>9780141395838</span>
    </li>
    <li>
    <span>Druk: New ed</span>
    </li>
    <li>
    <span>oktober 2014</span>
    </li>
    <li>
    <span>352 pagina's</span>
    </li>
    </ul>
我得到了“恩格斯”(这没关系)

但是如何在下一个“span”之间获取文本

xxx.span.next_sibling
给出
'/n'

任何帮助都将不胜感激

编辑: 网址是

rec\u all=soup.find\u all(“ul”,class=“产品小规格”)
rec=soup.find(“ul”,class=“产品小规格”)
对于rec_all中的IET:
对于iets中的
打印(a.span.text)
打印(a.span.next_sibling)
您可以使用
find_all(“span”)
获取包含所有
的列表,然后您可以使用
for
-循环从列表中的每个项目获取文本

from bs4 import BeautifulSoup as BS

text = '''<ul class="product-small-specs" data-test="product-specs">
    <li>
    <span>Engels</span>
    </li>
    <li>
    <span>Hardcover</span>
    </li>
    <li>
    <span>9780141395838</span>
    </li>
    <li>
    <span>Druk: New ed</span>
    </li>
    <li>
    <span>oktober 2014</span>
    </li>
    <li>
    <span>352 pagina's</span>
    </li>
</ul>'''


soup = BS(text, 'html.parser')

all_items = soup.find_all('span')

for item in all_items:
    print(item.text)

编辑:如果您需要所选
中的所有
,则可以使用

ul = soup.find('ul', class_="product-small-specs")

all_items = ul.find_all('span') # search only inside `ul`

for item in all_items:
    print(item.text)

首先显示此页面的代码和url。也许page使用JavaScript添加项目,而BS无法运行JavaScript。也许您应该使用
find_all('span')
获取包含所有
span
的列表,然后使用
for
-loop从列表中的每个元素获取文本。rec_all=soup。find_all(“ul”,class=“产品小规格”)rec=soup。find(“ul”,class=“产品小规格”)对于rec_all中的iets:对于in-iets:print(a.span.text)print(a.span.next_sibling)url总是会对代码、数据和错误消息产生疑问-它将更具可读性,更多的人会看到它。问题是页面上有数百个span。我只想从span中获取本部分的文本(ul类=…),然后使用
find
find\u all
获取
,然后您可以使用
ul
而不是
soup
在该项目内搜索-请参阅添加的代码。非常感谢!这就是我要找的。在这件事上伤了我好几个小时的头!谢谢!
Engels
Hardcover
9780141395838
Druk: New ed
oktober 2014
352 pagina's
ul = soup.find('ul', class_="product-small-specs")

all_items = ul.find_all('span') # search only inside `ul`

for item in all_items:
    print(item.text)