我想找到并抓取在下方给出的所有文本。 现在,它返回文本以及 我想学习最快的方法,并用逗号格式化。
现在我可以通过命令分别抓取每个代码来对其进行编码。 但是我想抢走20多个物品,所以我想找到一种更快的方法。 并从中学习:D
我尝试通过在末尾添加get_text来切换find和find_all。 他们都给出了错误
kenmerken = BeautifulSoup(browser.page_source, 'lxml')
details = kenmerken.find_all ('div', {'class':'detail-tab-content kenmerken'})
try:
tr = details[0].find_all ('td', {'class': 'value'})
except IndexError:
size_space = 'Unknown'
print(tr)
结果:
[<td class="value">
Herenhuis
</td>, <td class="value">
2008
</td>, <td class="value">
250 m²
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
5
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
Ja
</td>, <td class="value">
-
</td>, <td class="value">
-
</td>, <td class="value">
Ja
</td>, <td class="value">
3.627
</td>, <td class="value">
64
</td>]
[<td class="value">
答案 0 :(得分:1)
在您的尝试块tr
中将包含td
个元素的列表。如果您想使用td .text
,则需要对列表进行迭代,例如使用列表理解。我已经将find_all
的{{1}}交换了-都返回列表。
select
如果您还打算循环tds_values = [td.text for td in details[0].select('td.value')]
,请使用:
details
如果要用逗号分隔的字符串
for detail in details:
tds_values = [td.text for td in detail.select('td.value')]