使用 pandas/beautiful soup 抓取表数据(而不是慢的 Selenium?),BS 实现不起作用

2024-06-18

我正在尝试抓取该网站上的网络数据,而我能够访问数据的唯一方法是迭代表的行,将它们添加到列表中(然后将它们添加到 pandas 数据框/写入csv),然后单击下一页并重复该过程 [每次搜索大约 50 页,我的程序执行 100 多个搜索]。它非常慢/效率低下,我想知道是否有一种方法可以使用 pandas 或 beautiful soup 有效地添加所有数据,而不是迭代每行/列。

url = "https://claimittexas.org/app/claim-search https://claimittexas.org/app/claim-search"

rows = driver.find_elements_by_xpath("//tbody/tr")
    try:
        for row in rows[1:]:
            row_array = []
            #print(row.text) # prints the whole row
            for col in row.find_elements_by_xpath('td')[1:]:
                row_array.append(col.text.strip())
            table_array.append(row_array)
        df = pd.DataFrame(table_array)
        df.to_csv('my_csv.csv', mode='a', header=False)
    except:
        print(letters + "no table exists")

编辑:我尝试使用美丽的汤进行刮擦,这是我在本周早些时候尝试过并发布的内容,但如果不使用硒,我似乎无法访问该表

在 bs 版本中,我放入了一堆 print 语句来查看出了什么问题,并且 rows 值只是一个空列表

html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
rows = soup.find('table').find('tbody').find_all(('tr')[1:])
for row in rows[1:]:
    cells = row.find_all('td')
    for cell in cells[1:]:
        print(cell.get_text())

在 BS4 代码实现中使用这一行

rows = soup.find('table').find('tbody').find_all('tr')[1:]

代替

rows = soup.find('table').find('tbody').find_all(('tr')[1:])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pandas/beautiful soup 抓取表数据(而不是慢的 Selenium?),BS 实现不起作用 的相关文章

随机推荐

  • 旋转后,精灵和矩形位置在 Libgdx 中未对齐

    我有以下代码 其中紧密映射的精灵 矩形和多边形在 libgdx 中以相同角度旋转 旋转后矩形与精灵不对齐 虽然精灵在绘制时会旋转 但旋转后坐标和尺寸保持不变 矩形的情况并非如此 请参阅下面的代码和结果图 public void rotate
  • 使用 bootstrap 渲染的 Django FilteredSelectMultiple 小部件

    我正在尝试复制FilteredSelectMultipledjango 应用程序管理中使用的小部件 但我的小部件呈现非常不同 管理中的小部件使用Django 套装 http djangosuit com or django admin bo
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 获取的属性名称值

    如何使用 jQuery 获取输入标记的属性名称值 请帮忙
  • 接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足

    我正在使用 Angular 7 2 当我进入ng serve 我面临以下问题 致命错误 接近堆限制的无效标记压缩分配失败 JavaScript 堆内存不足 这意味着什么 我该如何解决这个问题 完整的错误消息是 FATAL ERROR Ine
  • 在java中的super调用之前创建一个对象

    考虑到简单的java代码是行不通的 public class Bar extends AbstractBar private final Foo foo new Foo bar public Bar super foo 我需要在之前创建一个
  • ASP.NET Webform 中的异常处理

    在 ASP NET Webforms 中处理异常的首选方法是什么 你有Page Error您添加的方法 我认为 web config级别 并且当发生错误时整个站点将被重定向到该级别 这是否意味着您不应在 Web 表单应用程序中的任何位置使用
  • 如何从 S3 中删除名称为空的文件

    不知何故 使用 AWS Java API 我们成功地将一个没有名称的文件上传到 S3 如果我们运行该文件就会显示s3cmd ls s3 myBucket MyFolder 但未显示在 S3 GUI 中 Running s3cmd del s
  • Xcode 6.1“Xcode 调试器中内置的 Swift REPL 可以检查和操作正在运行的应用程序”不起作用

    对于 Xcode 6 1 更新点之一是 Xcode 调试器内置的 Swift REPL 可以检查和操作 你的跑步应用程序 我创建了空项目 在 viewDidLoad 中设置了一个断点 当应用程序在断点处停止时 我在 Xcode 控制台中输入
  • 创建费用前验证 CVC 代码

    我正在尝试检查用户输入的 cvc 代码 我已经存储了条带 customer id 和条带 card id 我想在向用户收费之前验证 CVC 代码 以下是创建费用的代码 charge Stripe Charge create amount g
  • 向多个 EC2 实例发送 AWS CloudWatch 警报

    我想要应用 CloudWatch 警报来停止我们的预生产环境中未使用的实例 我们经常会遇到实例被启动 使用然后保持打开状态 这确实开始花费我们相当多的钱 CloudWatch 警报有一个方便的功能 我们可以根据一些指标停止 这太棒了 我想用
  • 如何用C语言创建字典?

    我正在用 C 语言编写一个微控制器 作为它的一部分 我想在 7 段显示器上显示某些字母 每个字母都有一个对应的数字 使 7 段显示屏显示该字母 它没有真正的模式 因为数字只是通过将显示字母所需的 7 段显示器上的位相加而成 因此如果我可以创
  • iOS7 XIB 问题。顶部和底部的空白

    我有一个正在设置 ImageView 的视图 自动布局已选中 预览中看起来不错 但当应用程序实际在模拟器上运行时 仅在 iPhone 视网膜 4 英寸模拟器中 顶部和底部显示空白 3 5寸的看起来还不错 使用 iOS7 和 XCODE 5
  • 在 Angular 5 中使用 jquery 插件

    我正在尝试在 Angular 5 项目中使用以下日期选择器 但我不确定如何导入它 https bootstrap datepicker readthedocs io en latest index html https bootstrap
  • javaFX helloworld jar 无法在不同平台上运行

    我对 JavaFX 很陌生 不确定是否有人知道我做错了什么 这是场景 在win 7上 使用netbeans 8和jdk1 8 0 05创建了一个helloworld jar 在 win 7 上 java jar helloworld jar
  • 媒体查询跨帧泄漏

    这是一些 HTML The test html页面包含一些来自外部文件的 CSS 样式表有 media all and max width 600px body background color red 上面是简化的 但足以说明问题 两个页
  • 如何在 DB2 AS/400 中将小数字段转换为日期字段?

    我有一个 DECIMAL 字段 其中包含 AS400 格式的日期 1100614 我努力了 cast MYDATE as DATE 但我无法将 DECIMAL 转换为 DATE 而 DATE MYDATE 返回空值 如何将此字段转换为日期字
  • 如何在C#中使用默认浏览器打开带有锚点(#)的html文件

    我正在尝试在 C 中打开上下文帮助文件 当我没有指定锚点时 它工作得很好 Process Start C Help Help htm 但是当我指定锚点时 它不会打开 Process Start C Help Help htm Toc3420
  • 纯CSS代码,没有绝对定位

    我试图想出一个纯CSS代码 就像你在电视上看到的那样 仅not粘在屏幕底部 我已经找到了涉及 JS 的东西 但我正在努力避免 JS 我还发现了一些其他人创建的纯 CSS 代码 但这些的问题在于它们都使用position absolute 这
  • 使用 pandas/beautiful soup 抓取表数据(而不是慢的 Selenium?),BS 实现不起作用

    我正在尝试抓取该网站上的网络数据 而我能够访问数据的唯一方法是迭代表的行 将它们添加到列表中 然后将它们添加到 pandas 数据框 写入csv 然后单击下一页并重复该过程 每次搜索大约 50 页 我的程序执行 100 多个搜索 它非常慢