从a<;李>;使用美化组Python作为文本
这是我想从中获取数据的HTML文件的一部分从a<;李>;使用美化组Python作为文本,python,html,beautifulsoup,Python,Html,Beautifulsoup,这是我想从中获取数据的HTML文件的一部分 <ul class="listing-key-specs "> <li>2002 (02 reg)</li> <li>Hatchback</li> <li>115,000 miles</li> <li>Manual</li> <li>1.8L</li> <li>123 bhp
<ul class="listing-key-specs ">
<li>2002 (02 reg)</li>
<li>Hatchback</li>
<li>115,000 miles</li>
<li>Manual</li>
<li>1.8L</li>
<li>123 bhp</li>
<li>Petrol</li>
</ul>
从这行代码中我得到了这个输出
2002 (02 reg)
Hatchback
115,000 miles
Manual
1.8L
123 bhp
Petrol
split_details = split_details.split('\n')
['', '2002 (02 reg)', 'Hatchback', '115,000 miles', 'Manual', '1.8L', '123 bhp', 'Petrol', '']
但是,我想做的是从输出中获取每一行并放入一个列表,这样第一行就是第一个索引,依此类推。但是当我用换行符分割输出时,我得到了这个输出
2002 (02 reg)
Hatchback
115,000 miles
Manual
1.8L
123 bhp
Petrol
split_details = split_details.split('\n')
['', '2002 (02 reg)', 'Hatchback', '115,000 miles', 'Manual', '1.8L', '123 bhp', 'Petrol', '']
这不是我想要的。是否有我遗漏的东西,或者是否有其他方法将此字符串拆分为行
如果您好奇。在这种情况下,最好使用发电机。它包含标记及其子代中的所有字符串,去掉了空格字符。例如,
html = '''<ul class="listing-key-specs ">
<li>2002 (02 reg)</li>
<li>Hatchback</li>
<li>115,000 miles</li>
<li>Manual</li>
<li>1.8L</li>
<li>123 bhp</li>
<li>Petrol</li>
</ul>'''
soup = BeautifulSoup(html, 'html.parser')
vehicle_details = soup.find('ul', class_='listing-key-specs')
split_details = list(vehicle_details.stripped_strings)
print(split_details)
2002年(02注册),掀背式,115000英里,手动,1.8升,123马力,汽油机
如果需要列表,可以使用 如果希望在单个字符串中显示详细信息,可以添加以下内容
vehicle_details_string = ', '.join(vehicle_details)
print(vehicle_details_string)
输出:
2002 (02 reg), Hatchback, 115,000 miles, Manual, 1.8L, 123 bhp, Petrol
只需从列表中删除第一个和最后一个元素?因此,这些方括号和逗号不是字符串的一部分。我看到这些额外的字符不是字符串的一部分,它们只是显示在终端中。你真的应该做一些基本的python粗化,这被称为列表。如果打印,它会用逗号分隔所有值。
vehicle_details_string = ', '.join(vehicle_details)
print(vehicle_details_string)
2002 (02 reg), Hatchback, 115,000 miles, Manual, 1.8L, 123 bhp, Petrol