如何在 Pandas Dataframe 中组织来自 Selenium 的字符串?

How to organize strings from Selenium in Pandas Dataframe?

**我正在尝试从 whatsapp 聊天室提取数据,但我无法将数据发送到数据框。

我的密码是:**

chatroom = driver.find_element_by_class_name('_1_q7u')

pos= 0
df = pd.DataFrame(columns=['Time','Msgs'], index=None)

for ol in chatroom.find_elements_by_class_name('message-in'):
    data = []
    msgs = ol.find_elements_by_class_name('woe4f')
    times = ol.find_elements_by_class_name('_1RNhZ')
    for msg in msgs:
        data.append(msg.text)
    for time in times:
        data.append(time.text)
    df.loc[pos] = data
    pos+=1
    print(df)

** 错误返回的错误是 "ValueError: cannot set a row with mismatched columns" 但是当我让代码工作时,它给我带来了第一个及时的 elemnets 和 msg,我需要将它们全部组织起来。

新手尝试在这里编写代码。**

因此,如果您想使用 loc 将某些东西放入数据框中,您将必须确保放入的东西与 df 具有相同的尺寸。因为你有 2 列,所以你需要 2 件事......你可以通过将你的时间放在一个列表中并将你的消息放在一个列表中来实现这一点。

chatroom = driver.find_element_by_class_name('_1_q7u')

pos= 0
df = pd.DataFrame(columns=['Time','Msgs'], index=None)

for ol in chatroom.find_elements_by_class_name('message-in'):
    msgs = [k.text for k in ol.find_elements_by_class_name('woe4f')]
    times = [k.text for k in ol.find_elements_by_class_name('_1RNhZ')]
    df.loc[pos] = [times,msgs]
    pos+=1
    print(df)