无法解析经度和纬度 BeautifulSoup

Can't parse longitude and latitude BeautifulSoup

如果我用这个

 'latitude': item.find('div', class_='data-shop-latitude').get_text(),
 'longitude': item.find('div', class_='data-shop-longitude').get_text(),

我明白了

AttributeError: 'NoneType' object has no attribute 'get_text'

如果我用那个

'latitude': item.find('div', class_='data-shop-latitude'),
'longitude': item.find('div', class_='data-shop-longitude'),

我明白了

'latitude': None, 'longitude': None,

我怎样才能得到这个:

'latitude': 52.42065, 'longitude': 37.59659,

find 需要一个你应该使用的名为 attrs 的 kwarg。

获得 soup.find_all('div', attrs={'class':'shop-list-item'}) 的商店后,您需要做的就是使用 [=16] 上的 get 方法获取您感兴趣的不同属性的值=] 元素(其类型为 bs4.element.Tag:

import requests
from bs4 import BeautifulSoup

r = requests.get(r'https://www.mebelshara.ru/contacts')

soup = BeautifulSoup(r.text, 'html.parser')

shops = soup.find_all('div', attrs={'class':'shop-list-item'})
for shop in shops:
    print(shop.get('data-shop-name'))
    print(shop.get('data-shop-latitude'))
    print(shop.get('data-shop-longitude'))
    print()

输出:

ТЦ Европа
50.59084
36.59734

ТЦ Атлас
50.58516
36.565457

ТЦ РИО
50.64208
36.572086

[...]