[Python3x]:如何分别提取两个值(beautifulsoup)?

时间:2017-12-05 11:09:05

标签: python-3.x web-scraping beautifulsoup

这是我想分开的值(坐标)(纬度,经度)。

<input id="dokad" value="51.819544, 19.30441" type="hidden">

当我这样做时:

lat_lon = soup.find('input', attrs={'id':'dokad'}).get('value')

结果:

lat_lon
Out[1012]: '51.186147, 19.199997'
type(lat_lon)
Out[1013]: str

如何分别提取这两个值?

2 个答案:

答案 0 :(得分:2)

使用float()拆分字符串,然后使用lat_lon = lat_lon.split(', ')将字符串转换为浮点数:

  1. lat_lon = [float(number) for number in lat_lon]
  2. 然后通过执行以下操作将列表元素转换为float: lat_lon
  3. 现在[51.186147, 19.199997]变量应该包含浮点值列表:report

答案 1 :(得分:1)

另外一种尝试可能类似于下面的内容:

content='''
<input id="dokad" value="51.819544, 19.30441" type="hidden">
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(content,"lxml")

item = soup.select("#dokad")[0]['value']
lat = item.split(", ")[0]
lon = item.split(", ")[1]

print("Lat: {}\nLong: {}".format(lat,lon))

结果:

Lat: 51.819544
Long: 19.30441