作者vincent6330 (vincent)
看板Python
标题[问题] read_html合并多页表格
时间Mon Jun 8 13:55:52 2020
自学python练习中,请教各位前辈
练习:selenium 抓取多页表格合并,模拟点选下一页後抓取table表格并且合并
问题:如何抓取每一页table并且合并成一个csv?
此code只会有第一页的表格有成功汇出在csv
selenium模拟下一页都有跑完,但却没有在concat合并进去
看完一轮stackoverflaw,比较类似此解法
https://reurl.cc/oL4Qnv
https://reurl.cc/yZ4MzE
但到底要先Append最後在concat? 还是可以直接concat?
两种我目前都失败QQ
谢谢大家
----code----
df_list = []
page_num = 1
page_remaining = True
while page_remaining == True:
suop = BeautfulSoup(driver.page_source, 'lxml')
table = soup.select_one('#seld')
df_list = pd.read_html(str(table))
df = pd.concat(df_list)
try:
next_page = driver.find_element_by_partial_link_text('下一页')
next_page.click()
sleep(3)
if page_num < 2: #试跑两页
page_num += 1
else:
page_remaining = False
except NoSuchElementException:
break
df.to_csv(r'路径',encoding='utf-8')
driver.quit()
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.137.166.145 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1591595754.A.5F3.html
1F:推 TuCH: concat 拉到最外面 df_list append就好 06/08 18:12
2F:推 moodoa3583: df = pd.concat([df,df_list]) 这样呢? 06/08 19:37
谢谢两位回覆,後来都没成功,因此把 while 改成 for i range去跑每页
然後表格部分後来找到有解如下
先把表格concat 然後再append 最後汇出成csv前 在concat一次....
这样才会成功@@
※ 编辑: vincent6330 (223.137.166.145 台湾), 06/09/2020 16:34:56