对象为空

2024-09-29 22:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我想操作此站点上“伯明翰停车场”容量计数器上的数字:https://www.theclimbingdepot.co.uk/leeds/news/capacity-counter

下拉列表中的多个按钮的属性id为“Count”

当我运行代码时,我得到一个=None

import requests
from bs4 import BeautifulSoup

URL = 'https://www.theclimbingdepot.co.uk/leeds/news/capacity-counter'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')

a = soup.find("div", {"id": "count"})
print(a)

如何找到此容量计数编号


Tags: httpsimportidurlwwwcounterrequestsnews
1条回答
网友
1楼 · 发布于 2024-09-29 22:27:17

要打印所有仓库、容量和当前计数,可以使用以下示例:

import re
import requests
from ast import literal_eval
from bs4 import BeautifulSoup


url = 'https://www.theclimbingdepot.co.uk/leeds/news/capacity-counter'
media_url = 'https://portal.rockgympro.com/portal/public/{pkg}/occupancy?&iframeid=occupancyCounter&fId='

soup = BeautifulSoup(requests.get(url).content, 'html.parser')
pkg = soup.select_one('.media_embed script')['src'].split('=')[-1]
soup = BeautifulSoup(requests.get(media_url.format(pkg=pkg)).content, 'html.parser')

names = {o['value']: o.get_text(strip=True) for o in soup.select('option')}
data = literal_eval(re.search(r'var data = ({.*?});', soup.body.script.string, flags=re.S).group(1))

print('{:<30} {:<10} {}'.format('Name', 'Capacity', 'Count'))
for k, v in data.items():
    print('{:<30} {:<10} {}'.format(names[k], v['capacity'], v['count']))

印刷品:

Name                           Capacity   Count
Depot Manchester               170        166
Depot Nottingham               105        79
Depot Leeds (Pudsey)           82         59
Depot Birmingham               150        103
Big Depot Leeds                105        69
Depot Climbing Sheffield       235        131

相关问题 更多 >

    热门问题