【问题标题】:p tag with/without class and stringsp 标签带/不带类和字符串
【发布时间】:2013-09-04 04:41:54
【问题描述】:

我是 python 新手,我正在尝试理解 BeautifulSoup。

我做了这段代码,它可以工作,但不是我想要的方式:

for abc in soup.findAll(['p',{'a':re.compile('href="/download/*')}]):
    value=abc.text
    print value

页面多个“块”为这一块:

<div class="">
  <div class="ABC">
    <p>
      <a href="/download/1234/abcde/fghij">String1</a>
    </p>
    <p class="data">
      String2 <a href="/user/4649/abc">String3</a> String2 
    </p>
  </div>
  <img src="/img/abc.png" alt="String4" title="String5" />
</div>

我想阅读所有这些“块”并转换为字典(?): [Link'/download/1234/abcde/fghij', Name'String1', User'String3', alt'String4, title'String5']

这样我可以搜索名称并获取链接

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    试试这样的:

    for outer in soup.find_all("div", attrs={"class": ""}):
        a = outer.find("a")
        img = outer.find("img")
        entry = { "Link": a.get("href")
                , "Name": a.text
                , "User": outer.find("p", "data").find("a").text
                , "alt": img.get("alt")
                , "title": img.get("title")
                }
        print entry
    

    这会检索您想要的东西并将它们放入字典中。

    【讨论】:

    • 谢谢!工作!我不知道我可以做两个连续的发现。正确的是 findAll 而不是 find_all。
    • find_all 适用于较新版本的汤,而 findAll 适用于较新版本和以前版本,但可能不适用于未来版本。检查this question
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2012-04-22
    • 2018-04-12
    • 1970-01-01
    • 2022-11-22
    • 2019-11-18
    相关资源
    最近更新 更多