12345

该代码使用Python的BeautifulSoup库解析HTML内容,从网页表格中提取数据,然后利用pandas将数据转化为DataFrame并保存为CSV文件。主要步骤包括打开网页、解析tbody中的tr和td标签,以及设置数据列名和保存数据。
摘要由CSDN通过智能技术生成
import bs4
from bs4 import BeautifulSoup
from urllib import request
import pandas
## 解析网页内容
# ulist:保存解析后的网页内容,  html:传入的网页内容
def jiexi(ulist,html):
    soup = BeautifulSoup(html, 'html.parser') ##创建BeautifulSoup对象,并指定BeautifulSoup中TreeBuilder的解析器为html.parser
    for tr in soup.find('tbody').children: ## 循环标签tbody下的所有tr标签,一个迭代对象
        if isinstance(tr,bs4.element.Tag): ## 判断是否bs4.element.Tag类型
            tds = tr('td')  ## 得到这一行中的数据
            ulist.append([tds[0].string,tds[1].string,tds[2].string]) ## 添加到三个

## 分析数据,等到二维表格
def tofile(ulist):
    data = pandas.DataFrame(ulist)  ##数据框架,制作二维表
    data.columns =['监测点','AQI','空气质量指数类别']  ## 设置列名
    data.to_csv('./bj20200721.csv',header=True,sep='\t',index=False)  ## 写入csv
## 主函数
def main():
    uinfo=[]
    url='file:///C:/Users/SWJD/Downloads/aqi_1.html' ##得到网页地址
    html = request.urlopen(url).read().decode('utf-8') ##打开网页,并读取网页,设置编码格式
    jiexi(uinfo,html) ## 调用jiexi函数
    print("已爬取")
    tofile(uinfo)   ##调用tofile函数
    print('已保存')
#     主接口
if __name__ == '__main__':
    main()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值