python - 从 BeautifulSoup.findAll 创建行列表的更优雅的方式

标签 python beautifulsoup

我正在使用 BeautifulSoup 编写一个 Web 解析器。我创建了一个使用 bs.findAll(text=True) 生成的行列表,然后逐行分割并在那里应用我的逻辑。 html_payload 是任意网页。

到目前为止,我得到的代码可以工作,但它不是很漂亮,并且让我认为必须有一种更好、更优雅的编写方式。

    data_to_parse = BeautifulSoup(html_payload)
    lines_to_parse = []

    d = data_to_parse.findAll(text=True)
    for line in d:
        for line2 in line.strip().split('\n'):
            if line2:
                lines_to_parse.append(line2)

    for line in lines_to_parse:
        pass # here's where I start analyzing results

有没有人可以提出更好的方法来解决这个问题?

最佳答案

get all the text at once并将其分成几行:

data_to_parse = BeautifulSoup(html_payload)
for line in data_to_parse.get_text().split("\n"):
    pass  # ... do something

关于python - 从 BeautifulSoup.findAll 创建行列表的更优雅的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18412601/

相关文章:

python - 美丽汤 vs selenium v​​s urllib

python - LSTM出现ValueError : Shapes (5, 2, 3) and (5, 3) are incompatible

python根据另一列的条件在数据框中添加行

python - 如何使用训练/测试数据评估 pymc2 模型?

python-2.7 - 如何使用 BeautifulSoup 从 Python 中的字符串中删除 html 标签

Python从网站上抓取fb评论

python - 有没有办法在引用原始列表的同时将列表元素转换为自变量?

python - 实现 WSGI 流服务 : (how to detect client disconnects)

python - 使用 BeautifulSoup 抓取网站以下载其上的所有文档会抛出 IOError

Python - 网页抓取 - BeautifulSoup 和 CSV