Python BeautifulSoup在多个项目背后获取内容<;部门>;水平

Python BeautifulSoup在多个项目背后获取内容<;部门>;水平,python,parsing,web-scraping,beautifulsoup,Python,Parsing,Web Scraping,Beautifulsoup,如何使用BeautifulSoup获取两个“div”后面的时间数据 <div> <div> 6:00.00 </div> </div> 但这并不容易 完整的HTML示例: <div class='row'> <hr class='border zeropadding zeromargin'> <div class='col-md-6 zeropadding'> <label class='new_font

如何使用BeautifulSoup获取两个“div”后面的时间数据

<div>
<div>
6:00.00
</div>
</div>
但这并不容易

完整的HTML示例:

<div class='row'>
<hr class='border zeropadding zeromargin'>
<div class='col-md-6 zeropadding'>
<label class='new_font'>Duration at Rated Power (HH:MM)</label>
</div>
<div class='col-md-6 new_font'>
<div></div>
<div>
<div>
6:00.00
</div>
</div>

</div>
</hr>
</div>
<div class='row'>
<hr class='border zeropadding zeromargin'>
<div class='col-md-6 zeropadding new_font'>
<label class='new_font'>Weblink1</label>
</div>
<div class='col-md-6 new_font'>
<div>
<div class='show_value'>
<a href="http://www.gillsonions.com/node/192" target='_new' class='boldbluelink'>http://www.gillsonions.com/node/192</a>
</div>
</div>

div.div
选择器太模糊了,至少可以这么说

由于从表面上看,您可以获得“额定功率下的持续时间(HH:MM)”字段值,因此我将首先找到相应的
标签
,然后找到与字段格式匹配的文本节点:

label = soup.find("label", text="Duration at Rated Power (HH:MM)")
value = label.find_next(text=re.compile(r"\d+:\d+")).strip()
print(value)  # prints 6:00.00

(别忘了导入
re
模块)

div.div
选择器太模糊,至少可以这么说

由于从表面上看,您可以获得“额定功率下的持续时间(HH:MM)”字段值,因此我将首先找到相应的
标签
,然后找到与字段格式匹配的文本节点:

label = soup.find("label", text="Duration at Rated Power (HH:MM)")
value = label.find_next(text=re.compile(r"\d+:\d+")).strip()
print(value)  # prints 6:00.00

(不要忘记导入
re
module)

尝试以下方法,以获得您希望节省的时间:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://www.energystorageexchange.org/projects/2") 
soup = BeautifulSoup(page.content, 'lxml')
for item in soup.select("label.new_font"):
    if "HH:MM" in item.text:
        itemval = item.find_parent().find_next_sibling().text.strip()
        print(itemval)
输出:

6:00.00

尝试以下方法,以获得您希望节省的时间:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://www.energystorageexchange.org/projects/2") 
soup = BeautifulSoup(page.content, 'lxml')
for item in soup.select("label.new_font"):
    if "HH:MM" in item.text:
        itemval = item.find_parent().find_next_sibling().text.strip()
        print(itemval)
输出:

6:00.00

关于你的第二个问题:

if "kW" in item.text:
    itemval = item.find_parent().find_next_sibling().text.strip()
    output.append(itemval)

关于你的第二个问题:

if "kW" in item.text:
    itemval = item.find_parent().find_next_sibling().text.strip()
    output.append(itemval)

谢谢你的回答。请允许我将我的问题扩展到如何也刮取“额定功率(kW)”?谢谢你的回答。我可以把我的问题扩展到如何也刮取“额定功率(kW)”吗?