如何使用beautifulsoup从html标记的特定类中获取数据?

梅迪

我想div从这样的HTML文件中获取位于标签中的数据(名称,城市和地址)

<div class="mainInfoWrapper">
    <h4 itemprop="name">name</h4>
    <div>
        <a href="/Wiki/Province/Tehran"></a>
         city
        <a href="/Wiki/City/Tehran"></a>
         Address
    </div>
</div>

我不知道如何在该特定标签中获取所需的数据。显然我在beautifulsoup库中使用python

姆霍克

<h4>源HTML中有多个标签,但只有一个<h4>具有itemprop="name"属性,因此您可以首先搜索该标签然后从那里访问剩余的值。请注意,以下HTML是从源页面正确复制的,而问题中的HTML不是:

from bs4 import BeautifulSoup

html = '''<div class="mainInfoWrapper">
    <h4 itemprop="name">            
        NAME
        &nbsp;                          

    </h4>                           
    <div>                           
        <a href="/Wiki/Province/Tehran">PROVINCE</a> - <a href="/Wiki/City/Tehran">CITY</a> ADDRESS
    </div>                          
</div>'''

soup = BeautifulSoup(html)
name_tag = soup.find('h4', itemprop='name')
addr_div = name_tag.find_next_sibling('div')
province_tag, city_tag = addr_div.find_all('a')

name, province, city = [t.text.strip() for t in name_tag, province_tag, city_tag]
address = city_tag.next_sibling.strip()

当运行您提供的URL时

import requests
from bs4 import BeautifulSoup

r = requests.get('http://goo.gl/sCXNp2')
soup = BeautifulSoup(r.content)
name_tag = soup.find('h4', itemprop='name')
addr_div = name_tag.find_next_sibling('div')
province_tag, city_tag = addr_div.find_all('a')

name, province, city = [t.text.strip() for t in name_tag, province_tag, city_tag]
address = city_tag.next_sibling.strip()

>>> print name
بیمارستان حضرت فاطمه (س)
>>> print province
تهران
>>> print city
تهران
>>> print address
یوسف آباد، خیابان بیست و یکم، جنب پارک شفق، بیمارستان ترمیمی پلاستیک فک و صورت

我不确定终端上的打印输出是否正确,但是,此代码应为正确配置的终端生成正确的文本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用beautifulsoup从数据框中的URL列表中获取特定html div的内容?

如何使用Javascript从HTML页面的<SCRIPT>标记中获取特定数据

使用beautifulsoup获取html标记内的特定字符串

如何使用AngularJS从html标记获取数据

如何使用 ElectronJS 中的请求获取特定的类/xpath 数据

使用BeautifulSoup从html表中获取数据

如何从javascript中的特定类获取数据?

使用BeautifulSoup遍历标记类的html

如何使用beautifulsoup解析<pre>标记中的数据?

python:无法使用BeautifulSoup从html获取特定数据

使用BeautifulSoup在HTML标记后获取文本

使用beautifulsoup Python检查HTML中是否存在特定类

如何使用Beautifulsoup获取包含Python中另一个特定div类的div类?

使用 Beautifulsoup 时如何获取文本标记

如何从 html 中的 <font> 标记获取/抓取数据

如何在jquery中获取HTML标记数据属性

如何使用BeautifulSoup,Requests和Python从HTML的特定表中抓取数据?

使用Scrapy从HTML中的<script>标记获取数据

使用 BeautifulSoup 从 html 中抓取特定数据

如何使用python中的beautifulsoup从网页中获取数据

如何使用HTML Agility Pack获取所有在其属性值中包含特定字符串的HTML标记?

如何使用BeautifulSoup在Python中获取特定内容?

使用BeautifulSoup匹配html <div>标记中的确切类

使用BeautifulSoup 4在Html标记中引用两个类

当父标记的子代具有特定属性值时,如何使用BeautifulSoup获取父标记的名称值?

从 BeautifulSoup 获取类数据

如何使用Jquery / Javascript从嵌套HTML标记中获取价值

如何使用beautifulsoup-授权问题从图表中获取数据?

如何使用BeautifulSoup从网站获取var脚本中的json数据?