HTML解析div.p.ol在Python中返回空白



根据下面的屏幕截图,我正在尝试获取"ol";标签作为头标签,这样我就可以运行一个for循环;李;在其下面的标签以获得"的内容/地址;咏叹调标签";s.

但是,我的代码返回为空。任何人都知道我是怎么得到这个";ol";充当页眉?非常感谢!!

import requests
from bs4 import BeautifulSoup
# website
sitemap = 'https://www.walmart.com/store/finder?location=87321&distance=100'
# content of website
sitemap_content = requests.get(sitemap).content
# parsing website
soup = BeautifulSoup(sitemap_content, 'html.parser')
#print(soup)
header_div = soup.div.ol.li
print(header_div)

检查元件屏幕截图

您在页面上看到的数据以Json的形式存储在<script>元素中。

import json
import requests
from bs4 import BeautifulSoup

url = 'https://www.walmart.com/store/finder?location=02468&distance=100'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')
data = json.loads(soup.select_one('#storeFinder').string)
# uncomment this to print all data:
# print(json.dumps(data, indent=4))
# print some data to screen:
for store in data['storeFinder']['storeFinderCarousel']['stores']:
print(store['displayName'])
print(store['address']['address'])
print(store['address']['postalCode'], store['address']['city'])
print('-' * 80)

打印:

Framingham Store
121 Worcester Rd
01701 Framingham
--------------------------------------------------------------------------------
Walpole Supercenter
550 Providence Hwy
02081 Walpole
--------------------------------------------------------------------------------
Quincy Store
301 Falls Blvd
02169 Quincy
--------------------------------------------------------------------------------
...and so on.

最新更新