我试图从span id中提取数字数据,但得到的输出是“-”。代码工作时没有错误消息,但不会打印“58990”之类的数字,而是打印“-”。这个网站基本上每24小时更新一个数字,我希望我的代码在每次更新这个数字时都会被删除
page = requests.get("https://covidtracker.fr/vaccintracker/")
soup = BeautifulSoup(page.content,"html.parser")
home = soup.find(class_="page-template page-template-template_vaccintracker page-template-template_vaccintracker-php page page-id-3717")
posts = home.find_all(class_="wrap")
for post in posts:
title = post.find(id="nb_doses_injectees_24h")
print(title.text)
首先,最好在所有
soup
对象中使用标记名。其次,bs4中的class_
只能调用class
属性。所有其他属性都应作为字典传递soup.find('<tag_name>', {'<attr_name>': '<attr_value>'})
不幸的是,您正在抓取的网站是动态网站,这意味着您不能通过使用
bs4
调用静态元素来抓取它。如果查看页面源并查找刮取的标记,您将看到:这就是您得到
结果的原因。您需要切换到
selenium
以浏览JS-based
网站。下面的一个将非常适合您的情况:相关问题 更多 >
编程相关推荐