解析更改标签BeautifulSoup
问题描述:
如果我的标签不断变化如下:解析更改标签BeautifulSoup
<tr id="CN13FUT">
<tr id="CU13FUT">
<tr id="CZ13FUT">
<tr id="CH14FUT">
[...]
我如何使用BeautifulSoup阅读本? 这就是我需要帮助:
table = BeautifulSoup(page)
for tr in table.findAll('tr', attrs = {'id': 'something_here'))
print tr
我不想只使用table.findAll('tr')
,因为有可能是我不希望其他tr
标签,我只希望,因为它是怎样的格式显示以上。
答
id = ...'是什么?也许阅读所有'tr'标签并解析正确的标签会更容易。 –
你可以使用正则表达式来指定要哪个<tr>
S:
import bs4 as bs
import re
doc = '''<tr id="CN13FUT">
<tr id="CU13FUT">
<tr id="CZ13FUT">
<tr id="CH14FUT">
<tr id="ButNotThis">
'''
table = bs.BeautifulSoup(doc)
for tr in table.findAll(id=re.compile(r'CN13|CU13|CZ13|CH14')):
print(tr)
产量
<tr id="CN13FUT">
</tr>
<tr id="CU13FUT">
</tr>
<tr id="CZ13FUT">
</tr>
<tr id="CH14FUT">
</tr>
+0
但是如果我不知道有多少个标签'
+0
我的解决方案不需要您知道标签的*号*。它仅仅意味着根据使用正则表达式模式来选择所需的'tr'标签来显示答案的*形式*。你从未说过选择期望的'tr'标签的标准,所以我假设你知道如何形成正确的正则表达式模式。如果你不需要说明标准。 – unutbu
如果所有的ID属性在 “FUT” 结尾,然后
for tr in table.findAll(id=re.compile('FUT$')):
print(tr)
print(tr['id']) # to print the id attributes
如果所有id属性长度相同(7),则
for tr in table.findAll('tr', id=lambda x: x and len(x)==7):
print(tr['id']) # to print the id attributes
相关问题
- 1. 用BeautifulSoup解析标签
- 2. 在用Beautifulsoup解析HTML时更改标签
- 3. BeautifulSoup解析嵌套div标签
- 4. 使用BeautifulSoup解析HTML标签
- 5. 解析<br>标签与beautifulsoup
- 6. 从BeautifulSoup解析HTML中删除标签
- 7. Python的Beautifulsoup img标签解析
- 8. 如何更改BeautifulSoup的解析器?
- 9. 解析:查询更改标签文本
- 10. beautifulsoup:解析跨度标题
- 11. Python BeautifulSoup解析
- 12. BeautifulSoup:解析页
- 13. 如何使用BeautifulSoup解析HTML标签内部的HTML标签的内容?
- 14. 使用BeautifulSoup解析由<br>标签分隔的行吗?
- 15. 如何让BeautifulSoup将textarea标签的内容解析为HTML?
- 16. BeautifulSoup解析器没有按标签正确分割
- 17. 解析HTML与BeautifulSoup替换现有的HTML标签
- 18. 下特定的标签Beautifulsoup解析数据
- 19. 带有BeautifulSoup的Python XMl解析器。我如何删除标签?
- 20. 使用BeautifulSoup解析<tr>标签,有麻烦提取值
- 21. 如何通过脚本标签使用python解析和beautifulsoup
- 22. 解析使用BeautifulSoup
- 23. Python,BeautifulSoup解析表
- 24. HTML解析表 - BeautifulSoup
- 25. Python BeautifulSoup XML解析
- 26. 解析HTML表BeautifulSoup
- 27. 问题... BeautifulSoup解析
- 28. BeautifulSoup解析缺少标记的输入
- 29. Python的BeautifulSoup html标记解析问题
- 30. beautifulsoup解析html标记异常
答
如果所有的ID属性在 “FUT” 结尾,然后
for tr in table.findAll(id=re.compile('FUT$')):
print(tr)
print(tr['id']) # to print the id attributes
如果所有id属性长度相同(7),则
for tr in table.findAll('tr', id=lambda x: x and len(x)==7):
print(tr['id']) # to print the id attributes
做所有'tr's(你需要的)有一个id?他们总是以C开头吗? – TerryA