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()
12345
最新推荐文章于 2024-09-14 19:55:48 发布
该代码使用Python的BeautifulSoup库解析HTML内容,从网页表格中提取数据,然后利用pandas将数据转化为DataFrame并保存为CSV文件。主要步骤包括打开网页、解析tbody中的tr和td标签,以及设置数据列名和保存数据。
摘要由CSDN通过智能技术生成