【问题标题】:Python beautifulsoup and openpyxlPython beautifulsoup 和 openpyxl
【发布时间】:2022-01-05 19:32:33
【问题描述】:

所以,我正在尝试使用 beautifulsoup 进行数据提取(网络爬虫/抓取工具),并且我正在尝试遍历 html 中的每个标签以找到我想要的数据。我的目标是获取特定信息并将其放入带有 openpyxl 库的 excel 工作表中。举个例子:

<table id="Table">   
    <tr>
        <th>Info A1</th>
        <th>Info B1</th>
        <th>Info C1</th>
        <th>Info D1</th>
        <th>Info E1</th>
    </tr>
    <tr>
        <th>Info A2</th>
        <th>Info B2</th>
        <th>Info C2</th>
        <th>Info D2</th>
        <th>Info E2</th>
    </tr>
</table>

基本上,我想做的是比较桌子上的所有“A 数字”信息,如果其中一个与我拥有的信息匹配,我将得到相同的其余信息tr,并将其放入excel文件中。真实的表比示例中的这个大得多,我已经成功迭代它,但我不知道如何识别我想要的信息并将其与我已有的信息进行比较。

【问题讨论】:

  • 您应该向我们展示您的代码。当您遍历行时,您会将每个单元格收集到一个列表中,直到您决定这是否是您想要的行。一旦你决定了,你就可以把这个列表放到你的 Excel 表格中。

标签: python excel beautifulsoup openpyxl


【解决方案1】:
d={}
for tr in soup.findAll('tr'):
    key = tr.text.split()[0]
    val = tr.text.split()[1:]
    d[key] = val
for key in d:
    if key in my_list:
        print(key) #prints the match from your list
        print(d[key]) #prints the values attached to the match

创建一个空字典,遍历汤(您的表应该驻留的位置),将每个 A 值作为键,将每个 B/C/D/E 作为键值添加到列表中。

然后,对于字典中的每个键(A 值),检查它们是否出现在 my_list(您的 A 值列表)中;如果找到匹配项,则执行打印语句(应根据您的需要更改),其中键对应于 A 值,d[key] 对应于给定 A 值的 B/C/D/E 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-04
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多