【问题标题】:python bs4 or lxml to solve this? [closed]python bs4或lxml来解决这个问题? [关闭]
【发布时间】:2018-08-29 02:20:32
【问题描述】:

在网站上,我的解析器看起来像这样。顺便说一句,我是 Python 新手。

<ul class="main-info-list">
    <li class="span">
        <div class="title">Address</div>
        <div class="value">Bangkok </div>
    </li>
    <li>
        <div class="title">Status</div>
        <div class="value">Finish</div>
    </li>
    <li>
        <div class="title">Type</div>
        <div class="value">Condo</div>
    </li>
    <li>
        <div class="title">Section</div>
        <div class="value">Unknown</div>
</ul>

我怎样才能制作这样的字典。

Data = {"Address":"Bangkok","title":"Finish","Type":"Condo","Section":"Unknown"}

【问题讨论】:

标签: python beautifulsoup lxml


【解决方案1】:

使用 bs4

演示:

s = """<ul class="main-info-list">
    <li class="span">
        <div class="title">Address</div>
        <div class="value">Bangkok </div>
    </li>
    <li>
        <div class="title">Status</div>
        <div class="value">Finish</div>
    </li>
    <li>
        <div class="title">Type</div>
        <div class="value">Condo</div>
    </li>
    <li>
        <div class="title">Section</div>
        <div class="value">Unknown</div>
</ul>"""

from bs4 import BeautifulSoup
d = {}
s = BeautifulSoup(s, "html.parser")
for i in s.find_all("li"):
    d[i.find("div", {"class": "title"}).text] = i.find("div", {"class": "value"}).text
print(d)

输出:

{u'Status': u'Finish', u'Section': u'Unknown', u'Type': u'Condo', u'Address': u'Bangkok '}

【讨论】:

  • 我在尝试您的方式时遇到此错误。 d[i.find("div", {"class": "title"}).text] = i.find("div", {"class":"value"}).text AttributeError: 'NoneType' 对象没有属性“文本”
  • 您的数据似乎没有 class=title 或 class=value
猜你喜欢
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-26
  • 2016-10-22
相关资源
最近更新 更多