通过Python Selenium获取Web数据

通过Python Selenium获取Web数据,python,selenium,Python,Selenium,我不熟悉Python Selenium。我试图将web数据表转换成python数据框架 网站详情: ->公司销售->Ist点销售(所有产品组)->输入开始和结束日期->单击显示报告 网页表看起来像 我写的代码是: from selenium import webdriver browser = webdriver.Chrome(executable_path='E:/Softwares/chromedriver.exe') browser.get('https://reports.dbtfert

我不熟悉Python Selenium。我试图将web数据表转换成python数据框架

网站详情: ->公司销售->Ist点销售(所有产品组)->输入开始和结束日期->单击显示报告

网页表看起来像

我写的代码是:

from selenium import webdriver
browser = webdriver.Chrome(executable_path='E:/Softwares/chromedriver.exe')
browser.get('https://reports.dbtfert.nic.in/mfmsReports/displayPortal')
elem1 = browser.find_element_by_link_text('Company Sales')
elem1.click()
elem2 = browser.find_element_by_link_text('Ist Point Sales(All Product Groups)')
elem2.click()

from_date = browser.find_element_by_name('parameterFromDate')
from_date.clear()
from_date.send_keys('01/08/2019')

to_date = browser.find_element_by_name('parameterToDate')
to_date.clear()
to_date.send_keys('31/08/2019')

to_date.submit()

table = browser.find_element_by_xpath('//*[@id="wrap"]/table[3]')
table_text = table.text
table2 = table_text.splitlines()
上面的代码以列表形式为我提供了一个表内容。以下是截图:

这是列表形式。我想把它转换成dataframe,就像网页表一样

如何将其转换为具有精确列标题和格式的dataframe


请帮助。

如果手头没有selenium,您可以尝试使用
pd。阅读html(browser.page\u source,…)
谢谢。根据您的建议,我已将代码更新为
table=pd.read_html(browser.page_source)[4];table.columns=table.iloc[0];table=table.drop(table.index[0])
并且它根据我的需要完美地工作。您好@jf328,我面临另一个问题。现在我从同一个网站获取以下内容:公司销售->公司对经销商的销售->选择州和地区->选择开始和结束日期->最多我们可以提取1个月的数据。这里我们得到的表是一个滚动表。它不是由
pd.read\u html(browser.page\u source)
命令捕获的。请帮忙,它在一个iframe里面。您需要将浏览器对象切换到该框架内。Google
selenium switch iframe
应该能让你达到这个目的,顺便说一句,
pd.read\u html
有一个
标题
参数来处理你的
表.列
操作。