BeautifulSoup:get contents[]作为单个字符串

2024-09-25 18:15:02 发布

您现在位置:Python中文网/ 问答频道 /正文

有人知道一种优雅的方法,可以将汤对象的全部内容作为一个字符串来获取吗?

现在我得到了contents,这当然是一个列表,然后遍历它:

notices = soup.find("div", {"class" : "middlecontent"})
con = ""
for content in notices.contents:
    con += str(content)
print con

谢谢!


Tags: 对象方法字符串div列表forcontentscontent
3条回答

contents = str(notices)呢?

或者contents = notices.renderContents(),这将隐藏div标记。

您可以使用join()方法:

notices = soup.find("div", {"class": "middlecontent"})
contents = "".join([str(item) for item in notices.contents])

或者,使用生成器表达式:

contents = "".join(str(item) for item in notices.contents)
#!/usr/bin/env python
# coding: utf-8
__author__ = 'spouk'

import BeautifulSoup
import requests


def parse_contents_href(url, url_args=None, check_content_find=None, tag='a'):
    """
    parse href contents url and find some text in href contents [ for example ]
    """
    html = requests.get(url, params=url_args)
    page = BeautifulSoup.BeautifulSoup(html.text)
    alllinks = page.findAll(tag,  href=True)
    result = check_content_find and filter(
        lambda x: check_content_find in x['href'], alllinks) or alllinks
    return result and "".join(map(str, result)) or False


url = 'https://vk.com/postnauka'
print parse_contents_href(url)

相关问题 更多 >