当前位置: 首页 > 知识库问答 >
问题:

如何在python中从html表中刮取数据

蒋啸
2023-03-14
<tr class="even">
<td><strong><a href='../eagleweb/viewDoc.jsp?node=DOC186S8881'>DEED<br/>
2016002023</a></strong></td>
<td><a href='../eagleweb/viewDoc.jsp?node=DOC186S8881'><b> Recording Date: </b>01/12/2016 08:05:17 AM&nbsp;&nbsp;&nbsp;<b>Book Page: </b> <table cellspacing=0 width="100%"><tr><td width="50%"  valign="top"><b>Grantor:</b> ARELLANO ISAIAS</td><td width="50%"  valign="top"><b>Grantee:</b> ARELLANO ISAIAS, ARELLANO ALICIA</td></tr></table>
<b>Number Pages:</b> 3<br></a></td>
<td></td>
<td></td></tr>

我对python和刮擦是新手,请帮助我如何从这个表中刮擦数据。对于登录,请转到公共登录,然后输入收件人和收件人日期。

数据模型:数据模型具有以下特定顺序和大小写的列:“record_date”、“doc_number”、“doc_type”、“role”、“name”、“apn”、“transfer_amount”、“county”和“state”。“角色”列可以是“授权人”,也可以是“授权人”,这取决于名称分配的位置。如果设保人和受赠人有多个名称,请为每个名称添加新的行,并复制记录日期、文档编号、文档类型、角色和APN。

https://crarecords.sonomacounty.ca.gov/recorder/eagleweb/docsearchresults.jsp?searchid=0

共有1个答案

须彭亮
2023-03-14

您发布的html不包含数据模型中列出的所有列字段。但是,对于它确实包含的字段,这将生成一个python字典,您可以从该字典获取数据模型的字段:

import urllib.request
from bs4 import BeautifulSoup

url = "the_url_of_webpage_to_scrape" # Replace with the URL of your webpage

with urllib.request.urlopen(url) as response:
    html = response.read()

soup = BeautifulSoup(html, 'html.parser')

table = soup.find("tr", attrs={"class":"even"})

btags = [str(b.text).strip().strip(':') for b in table.find_all("b")]

bsibs = [str(b.next_sibling.replace(u'\xa0', '')).strip() for b in table.find_all('b')]

data = dict(zip(btags, bsibs))

data_model = {"record_date": None, "doc_number": None, "doc_type": None, "role": None, "name": None, "apn": None, "transfer_amount": None, "county": None, "state": None}

data_model["record_date"] = data['Recording Date']
data_model['role'] = data['Grantee']

print(data_model)

产出:

{'apn': None,
 'county': None,
 'doc_number': None,
 'doc_type': None,
 'name': None,
 'record_date': '01/12/2016 08:05:17 AM',
 'role': 'ARELLANO ISAIAS, ARELLANO ALICIA',
 'state': None,
 'transfer_amount': None}

您可以这样做:

print(data_model['record_date']) # 01/12/2016 08:05:17 AM
print(data_model['role'])        # ARELLANO ISAIAS, ARELLANO ALICIA
 类似资料:
  • 我正在学习网络抓取,因为我从真实的网站抓取真实世界的数据。然而,直到现在我才遇到这种问题。人们通常可以通过右键单击网站的一部分,然后单击检查选项来搜索想要的超文本标记语言源代码。我马上跳到这个例子来解释这个问题。 从上图中,红色标记的span类本来不存在,但是当我把光标放在用户的名字上(甚至没有点击)时,弹出一个该用户的小框,也显示了span类。我最终想要刮取的是嵌入在该span类中的用户配置文件

  • 问题内容: 我正在寻找一种在Linux Shell环境中从HTML获取某些信息的方法。 这是我感兴趣的一点: 我想将它们存储在shell变量中或在从html上面提取的键值对中回显这些变量。范例: 目前,我可以做的是创建一个Java程序,该程序将使用sax解析器或html解析器(例如jsoup)来提取此信息。 但是在这里使用Java似乎很麻烦,因为要在您要执行的“包装器”脚本中包含可运行的jar。

  • 我删除了一些数据,在这个数据框中得到了结果: 我只想在此HTML页面中显示:(病例、死亡、康复、危急): 最后的结果应该是这样的与我的刮削代码(它将显示没有CSS) 我是HTML的初学者:(我没有使用像flask或Django之类的web框架

  • 我正在尝试在这段代码中获取image-src: 我尝试了此代码,但不起作用: 图像=汤。查找(“img”)。get('image-src') 通常我使用get('src'),它可以工作,但问题是:我需要使用image-src,但它不工作。

  • 我需要一些关于使用python来删除站点中的一些数据属性的帮助。我尝试过使用和但没有成功,我在网上找到了一些关于使用beautiful Soup的文章。唯一的问题是我不知道怎么做。 这是我要刮的。 我正在尝试获得值,但我不知道如何获得。希望有人能帮忙。 问候, 哈扎

  • 已解决 通过使用HTMLUnit并在打印页面前停止一段时间,我让它打印缺少的内容