首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用BeautifulSoup从Div标签声明中提取内容

用BeautifulSoup从Div标签声明中提取内容
EN

Stack Overflow用户
提问于 2019-07-31 18:12:33
回答 1查看 39关注 0票数 0

我试图在div标记声明中提取一些内容:

代码语言:javascript
复制
<div class="search-listing font-size-10 my-3 my-md-0 py-0 py-md-4" listing_id="5327969" latitude="28.92327" longitude="-27.0365">
.
.
.
</div>

我想要的是经纬度。但我似乎无法访问div声明本身中的内容。我只能进入孩子们的物品。我用的是html.parser

如果我试着做:

代码语言:javascript
复制
line.select('div[class*py-md-4"]')[0]) 

我得到了一个索引错误。

这是行不通的:

代码语言:javascript
复制
coords = soup.find_all("longitude")

我试过:

代码语言:javascript
复制
divisions = soup.select('div[class*=search-listing]')

for line in divisions:

     print(line.select('div[class*=py-md-4]')[0])

但每次我试着从线上提取项目-它给我的孩子的div。

我希望能够从分区中提取出经度和纬度,但都没有用。这肯定是可能的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-31 18:18:09

您可以使用CSS选择器[latitude][longitude]。这将选择每个已定义属性latitude= longitude=的标记。

代码语言:javascript
复制
data = '''<div class="search-listing font-size-10 my-3 my-md-0 py-0 py-md-4" listing_id="5327969" latitude="28.92327" longitude="-27.0365">
<p>Some text</p>
</div>'''

from bs4 import BeautifulSoup

soup = BeautifulSoup(data, 'html.parser')

for tag in soup.select('[latitude][longitude]'):
    print('lat={} lon={}'.format(tag['latitude'], tag['longitude']))

指纹:

代码语言:javascript
复制
lat=28.92327 lon=-27.0365

进一步读:

CSS选择器参考

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57296716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档