gpt4 book ai didi

python BeautifulSoup查找span id名称而不使用string\re方法

转载 作者:行者123 更新时间:2023-12-01 06:08:58 25 4
gpt4 key购买 nike

我正在尝试获取我的 span 标签的 ID 名称。

<td vAlign="top" colSpan="2"><IMG height="25" src="images/spacer.gif" width="1"><br>
<!--start table details-->
<table cellSpacing="1" cellPadding="5" width="100%" bgColor="#a18c42" border="0" id="compDetails">
<tr bgColor="white">
<td class="rowName" noWrap>מספר תאגיד:</td>

<td width="100%" colSpan="3"><span id="lblCompanyNumber">520000472</span></td>
</tr>
<tr bgColor="white">
<td class="rowName" noWrap>שם תאגיד (עברית):</td>
<td width="50%"><span id="lblCompanyNameHeb">חברת החשמל לישראל בעמ</span></td>
<td class="rowName" noWrap>שם תאגיד (אנגלית):</td>
<td width="50%"><span id="lblCompanyNameEn"></span></td>

</tr>
<tr bgColor="white">
<td class="rowName" noWrap>סטטוס:</td>
<td width="50%"><span id="lblStatus">פעילה</span></td>
<td class="rowName" noWrap>סוג תאגיד:</td>
<td width="50%"><span id="lblCorporationType">חברה ציבורית</span></td>
</tr>

<tr bgColor="white">
<td class="rowName" noWrap>סוג חברה ממשלתית:</td>
<td width="50%"><span id="lblGovCompanyType">חברה ממשלתית</span></td>
<td class="rowName" noWrap>סוג מגבלות:</td>
<td width="50%"><span id="lblLimitType">מוגבלת</span></td>

假设 htmlSpan 包含上面的 html -

soup = BeautifulSoup(htmlSpan , fromEncoding="windows-1255") # I want to use windows-1255 and not utf8
spans = soup('span', limit=30)

这就是输出 -

[<span class="mainTitle">╫¿╫⌐╫¥ ╫פ╫ק╫ס╫¿╫ץ╫¬</span>,
<span class="subTitle">╫ñ╫¿╫ר╫ש
╫ק╫ס╫¿╫פ/╫⌐╫ץ╫¬╫ñ╫ץ╫¬</span>,
<span id="lblCompanyNumber">514568245</span>,
<span id="lblCompanyNameHeb">╫£╫ס╫ש╫נ ╫נ╫ש╫á╫ר╫ע╫¿╫ª╫ש╫פ ╫ץ╫á╫ש╫¬╫ץ╫ק ╫₧╫ó╫¿╫¢╫
ץ╫¬ ╫ס╫ó"╫₧</span>,
<span id="lblCompanyNameEn">LAVI INTEGRATION &SYSTEM; ANALYSIS LTD</span>,
<span id="lblStatus">╫ñ╫ó╫ש╫£╫פ</span>,
<span id="lblCorporationType">╫ק╫ס╫¿╫פ ╫ñ╫¿╫ר╫ש╫¬</span>,
<span id="lblGovCompanyType">╫ק╫ס╫¿╫פ ╫£╫נ ╫₧╫₧╫⌐╫£╫¬╫ש╫¬</span>,
<span id="lblLimitType">╫₧╫ץ╫ע╫ס╫£╫¬</span>,
<span id="lblStatusMafera"><b><font color="Red"></font></b></span>,
<span id="lblMaferaDate"></span>,
<span id="lblStatusMafera1"><b><font color="Red"></font></b></span>,
<span id="lblCountry">╫ש╫⌐╫¿╫נ╫£</span>,
<span id="lblCity">╫ק╫ף╫¿╫פ</span>,
<span id="lblStreet">╫פ╫£╫£ ╫ש╫ñ╫פ</span>,
<span id="lblStreetNumber">34</span>,
<span id="lblZipCode">38424</span>,
<span id="lblPOB"></span>,
<span id="lblLocatedAt"></span>,
<span id="lblCompanyGoal">╫£╫ó╫í╫ץ╫º ╫ס╫¢╫£ ╫ó╫ש╫í╫ץ╫º ╫ק╫ץ╫º╫ש</span>,
<span id="lblCompanyDesc"></span>,
<span id="lblDochShana"></span>]

我知道如何获取跨度内容,但无法获取跨度 ID 名称(“lblStatus” for ex')。

我怎样才能用BeautifulSoup的方法得到它?

我在保存 spans 内容时也遇到了麻烦,没有 BeautifulSoup 将其转换(字符集)为 utf8 (或乱码),最后我需要将 span id 名称和内容保存到 csv 中,并且我有 utf8有问题。

谢谢

最佳答案

I can't get the span id name ('lblStatus' for ex').

使用您自己的代码设置的spans:

for span in spans:
print span['id']

I'm also having trouble saving the spans content without BeautifulSoup converting to utf8 or gibberish

我无法复制这一点:对我来说,spans 的输出不是乱码,而是与 html 中相同的字符。您确定您尝试解析的页面是用“windows-1255”编码的吗?你的Python文件有正确的UTF-8编码声明(# -*-coding: UTF-8 -*-)吗?

UTF-8 几乎是当今 Python 中的标准,BeautifulSoup 在内部使用它。我的建议是在所有代码中使用 UTF-8,并仅在输出/转储数据时更改编码(如果您确实需要这样做)。

in the end I need to save the the span id name and content into a csv...

这只是一个粗略的想法,您应该根据需要进行调整:

import csv
file_ = open('output.csv', 'w')
writer = csv.writer(file_)
for span in spans:
writer.writerow([span['id'], span.string])

...and I'm having utf8 problems with it.

您能具体说明您的问题是什么吗?在我的系统(GNU/Linux)上它工作得很好。

关于python BeautifulSoup查找span id名称而不使用string\re方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com