Python pandas分页爬取网页的表格导出excel文件

我们利用模拟浏览器爬取一个网页上的表格,但是它有很多页,这就需要我们不断点击下一页来获取新的表格继续爬取。
在这里插入图片描述
如图所示,我们无法确定一个动态更新数据的表格的具体页数,因为他会随着数据变化而增加或减少。

a1 = driver.find_element_by_xpath('/html/body/div/div/div[2]/div/div[2]/nav/ul/li[last()-1]/a').text
a1 = int(str(a1))

上述代码用来获取当前页数数字,li[last()-1] 代表获取倒数第二个 li 标签,也就是上图中的‘91’这个数字,获取到了这个数字,写一个FOR循环来不断点击下一页,就可以实现分页爬取数据的效果。

第一步,先进入到有表格的网站,把初次显示的第一页表格爬取下来

driver.get('http://网站')
windows = driver.window_handles  # 把新的页面赋值给windows
driver.switch_to.window(windows[-1])  # 把窗口windwos中的最后一个窗口为当前窗口
html = driver.page_source  # 提取网页源码
df = pd.DataFrame()
#将第一页的表格爬取下来
df = df.append(pd.read_html(html), ignore_index=True)

第二部,就是刚刚我说的,获取最后一页的页码数,for循环点击下一页进行爬取

a1 = driver.find_element_by_xpath('/html/body/div/div/div[2]/div/div[2]/nav/ul/li[last()-1]/a').text
a1 = int(str(a1))

for i in range(1, a1):
    driver.find_elements_by_class_name('a1')[1].click()
    windows = driver.window_handles  # 把新的页面赋值给windows
    driver.switch_to.window(windows[-1])  # 把窗口windwos中的最后一个窗口为当前窗口
    html = driver.page_source  # 提取网页源码
    df = df.append(pd.read_html(html), ignore_index=True)

最后一步,自定义表头导出excel文件

df.to_csv('d:/a11.csv', header=['仓库', '货位类型', '货位','sku','库存','创建时间','更新时间','相关批次','订单信息'], index=False)

导出文件如下:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值