Jos*_*uce 3 python beautifulsoup
是否有一个衬里,我可以从 soup 对象获取文本,然后使用 splitlines 获取 html 中每一行的列表。然后删除列表中所有多余的空行,其中只有换行符。
我不想编写另一个 for 循环来传递两次并清理新行。另外,任何其他 pythonic 方式来做到这一点都是值得赞赏的。
soup = BeautifulSoup('myhtml.html', 'html.parser')
sections = soup.findAll(div, class_='section')
lines = []
for section in sections:
lines = lines + section.get_text().splitlines()
Run Code Online (Sandbox Code Playgroud)
尝试列表理解:
lines = lines + [l for l in sections.get_text().splitlines() if l]
Run Code Online (Sandbox Code Playgroud)
或者,filter:
lines = lines + list(filter(None, sections.get_text().splitlines()))
Run Code Online (Sandbox Code Playgroud)
此外,您可以将其缩短为
lines += ...
Run Code Online (Sandbox Code Playgroud)
如果你想摆脱循环,你可以这样做:
lines = [l for section in soup.findAll(div, class_='section')\
for l in section.get_text().splitlines() if l]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1846 次 |
| 最近记录: |