【问题标题】:How to extract the table of this page如何提取此页面的表格
【发布时间】:2021-10-24 04:38:12
【问题描述】:

好吧,在下面的代码中,我尝试提取屏幕上显示的表格,以便能够选择状态不是已接受的行,我附上了我尝试使用的代码,但是出现的错误:

thead = driver.find_element_by_tag_name('thead')
columns = [th.text for th in thead.find_elements_by_tag_name('th')]

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

tbody = soup.find('table')
data = []
for td in tbody.find_all('tr'):
    row = [i.text for i in td.find_all('td')]

    data.append(row)

df = pd.DataFrame(data=data, columns=columns)

df.to_excel("files/prueba.xlsx")

driver.quit()
print("Realizado con exito")

错误如下: enter image description here

我要提取信息以选择的表如下:enter image description here

如果有人建议另一种解决方案来检查 oc 的状态,然后选中这些框,那么欢迎提出建议。

【问题讨论】:

  • 错误清楚地说明了问题:columns 有 13 个值,但 data 只有 3 个实际列。你需要调试你的代码来弄清楚为什么会出现这种差异。

标签: python pandas selenium web-scraping beautifulsoup


【解决方案1】:

截图中的错误是:

ValueError: 13 columns passed, passed data had 3 columns

这基本上意味着您试图创建一个列数不等于(匹配)行宽(数据)的数据框。

您可以将这一行解读为:

ValueError:我(Python 解释器)找到 X 个要创建的列 列数据宽度;但是,查看行数据的宽度 你给了我,你应该给我 Y 列。我不知道哪个是正确的,所以我退出了。

举个简单的例子,让我们首先创建一个列和行数据相等的简单数据框:

import pandas as pd

columns = list('abc') # = ['a', 'b', 'c']

data = [list('123')] # = [['1', '2', '3']]

# we're not saving this frame so we're not assigning it
print(pd.DataFrame(data, columns=columns))

# >>    a  b  c
# >> 0  1  2  3

上述方法有效,因为a b c1 2 3 的长度相同(即3)。

但是,如果我们像这样将列更改为更大(不更改行数据)...

# create 13 columns (a-m)
columns = list('abcdefghijklm') # = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']

data = [list('123')] # = [['1', '2', '3']]

print(pd.DataFrame(data, columns=columns))

AssertionError                            Traceback (most recent call last)
AssertionError: 13 columns passed, passed data had 3 columns
ValueError: 13 columns passed, passed data had 3 columns

...它不起作用并显示一大堆错误。

在抓取时(或在创建数据框时),如果您看到该错误,请检查您传递了多少列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 2020-10-06
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多