网站上有一个表格,其中包含多个可以单击的元素。
每次单击都会将我定向到一个单独的页面,显示相应元素的其他表结果。
我想在Python中使用Selenium来抓取所有这些元素的表结果(还可以使用BeautifulSoup来解析html数据)。
下面是我当前的代码:
for i in range(table_pd2.shape[0]):
driver.find_element_by_link_text(table_pd2[0][i]).click()
driver.switch_to.window(driver.window_handles[1])
bs = BeautifulSoup(driver.page_source, 'html.parser')
table = bs.find_all('table', id='xxx')
table_pd = pd.read_html(str(table))
table_pd = table_pd[0]
driver.close()
driver.switch_to.window(driver.window_handles[0])
以下是我的逻辑:
问题: -每次单击后如何将每个结果保存在table_pd中?如何将所有table_pd合并到一个大熊猫数据框中?
请提出建议,谢谢!
答案 0 :(得分:0)
在下面尝试这个。
all_df = pd.DataFrame() #<====== created over all df
for i in range(table_pd2.shape[0]):
driver.find_element_by_link_text(table_pd2[0][i]).click()
driver.switch_to.window(driver.window_handles[1])
bs = BeautifulSoup(driver.page_source, 'html.parser')
table = bs.find_all('table', id='xxx')
table_pd = pd.read_html(str(table))
table_pd = table_pd[0]
all_df.append(table_pd) #<====== appending to over all df
driver.close()
driver.switch_to.window(driver.window_handles[0])