2024-04-23 09:55:03 发布
网友
我试图提取这些数据(lat和lng):
<div class="location" lat="1234" lng="5678" >
这对我来说毫无意义:
print (soup.find_all("div", { "class" : "location"}))
我的最终目标是将这些值存储在字典中。谢谢。你知道吗
您可以在BeautifulSoup中使用类似字典的元素属性:
locations = [{'lat': location['lat'], 'lng': location['lng']} for location in soup.find_all("div", {"class": "location"})]
如果只有一个位置,请使用find():
find()
location = soup.find("div", {"class": "location"}) print({'lat': location['lat'], 'lng': location['lng']})
This is giving me nothing
但这是一个单独的问题。您可能只是在解析的HTML中没有这个元素。你知道吗
从BeautifulSoup文档中,您可能使用find\u all()错误。 https://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-keyword-arguments
尝试:
print (soup.find_all("div",class_="location"))
或者
print (soup.find_all("div",attrs={"class": "location"}))
您当前的print正在返回一个结果列表:
print
[<div class="location" lat="1234" lng="5678"></div>]
您可以通过遍历每个结果来访问这些结果:
for r in results: print(r['lat'], r['lng'])
有两个div元素的完整示例如下所示:
div
from bs4 import BeautifulSoup html = """<div class="location" lat="1234" lng="5678" > <div class="location" lat="9101" lng="1213" >""" soup = BeautifulSoup(html, 'html.parser') results = soup.find_all("div", { "class" : "location"}) for r in results: print(r['lat'], r['lng'])
这将打印出两个结果:
('1234', '5678') ('9101', '1213')
您可以在BeautifulSoup中使用类似字典的元素属性:
如果只有一个位置,请使用
find()
:但这是一个单独的问题。您可能只是在解析的HTML中没有这个元素。你知道吗
从BeautifulSoup文档中,您可能使用find\u all()错误。 https://www.crummy.com/software/BeautifulSoup/bs4/doc/#the-keyword-arguments
尝试:
或者
您当前的
print
正在返回一个结果列表:您可以通过遍历每个结果来访问这些结果:
有两个
div
元素的完整示例如下所示:这将打印出两个结果:
相关问题 更多 >
编程相关推荐