我是一个在Python上使用re
库的noob。我正在做一个网页抓取,我想匹配一些字符串模式并将值附加到列表中。例如:
parking = []
rooms = []
toilets = []
attribute = soup.find('ul',{'class':'specs-list'}).find_all('li')
for a in attribute:
print(a.text)
输出索引为0的迭代
Metters
50 m�
Rooms
2
Toilets
1
索引为1的输出迭代a
Metters
50 m�
parking
1
spends
340
例如,我想匹配标题的名称,如果标题上存在一个值,我想将结果附加到每个列表上
伪代码:
for a in attribute:
if a contains "Rooms":
rooms.append(a)
if a contains "Parking":
parking.append(a)
if a contains "toilets":
parking.append(a)
if a not contains strings above:
rooms.append(nan)
parking.append(nan)
rooms.append(nan)
我使用BeautifulSoup创建web刮片,属性值的结果如下:
索引0的属性变量输出:
[<li class="specs-item">
<strong>Metters</strong>
<span>50 m�</span>
</li>,<li class="specs-item">
<strong>Rooms</strong>
<span>2</span>
</li>,<li class="specs-item">
<strong>Toilets</strong>
<span>1</span>
</li>,<li class="specs-item">
<strong>Spends</strong>
<span>340</span></li>]
一个属性的长度为5个值,每个值的代码与上述值类似,但标题和值不同,有些包含停车场、房间、卫生间,有些仅包含卫生间和房间,依此类推
这将有助于你:
u提供的
li
值的输出:编辑:
虽然这是可行的,但我觉得拥有这么多
lists
并不是一个好方法。相反,您可以使用dictionary
。这就是u如何使用dictionary
实现相同输出的方法:输出:
我觉得这是一个更好的办法。但这一切都取决于美国。选择最适合你的任务
相关问题 更多 >
编程相关推荐