无法解析经度和纬度 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
[...]
如果我用这个
'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
[...]